@@ -4366,7 +4366,7 @@ TEST(JSONLD_container_language_non_string_member_is_a_resolution_error) {
43664366
43674367 EXPECT_JSON_LD_RESOLUTION_ERROR (
43684368 schema, instance, " /x" , sourcemeta::blaze::JSONLDFacet::Container,
4369- " A JSON-LD language container requires string members" );
4369+ " A JSON-LD language container requires string or null members" );
43704370}
43714371
43724372TEST (JSONLD_container_and_type_is_a_resolution_error) {
@@ -4847,6 +4847,54 @@ TEST(JSONLD_container_language_empty_array_member_is_dropped) {
48474847 EXPECT_JSON_LD_VALUE (schema, instance, expected);
48484848}
48494849
4850+ TEST (JSONLD_container_language_null_member_is_dropped) {
4851+ const auto schema{sourcemeta::core::parse_json (R"JSON( {
4852+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4853+ "type": "object",
4854+ "properties": {
4855+ "x": {
4856+ "type": "object",
4857+ "x-jsonld-id": "https://schema.org/x",
4858+ "x-jsonld-container": "@language"
4859+ }
4860+ }
4861+ })JSON" )};
4862+
4863+ const auto instance{
4864+ sourcemeta::core::parse_json (R"JSON( { "x": { "en": null } })JSON" )};
4865+
4866+ const auto expected{sourcemeta::core::parse_json (R"JSON( [])JSON" )};
4867+
4868+ EXPECT_JSON_LD_VALUE (schema, instance, expected);
4869+ }
4870+
4871+ TEST (JSONLD_container_language_null_in_array_member_is_dropped) {
4872+ const auto schema{sourcemeta::core::parse_json (R"JSON( {
4873+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4874+ "type": "object",
4875+ "properties": {
4876+ "label": {
4877+ "type": "object",
4878+ "x-jsonld-id": "https://schema.org/name",
4879+ "x-jsonld-container": "@language"
4880+ }
4881+ }
4882+ })JSON" )};
4883+
4884+ const auto instance{sourcemeta::core::parse_json (
4885+ R"JSON( { "label": { "en": [ "Hi", null ] } })JSON" )};
4886+
4887+ const auto expected{sourcemeta::core::parse_json (R"JSON( [
4888+ {
4889+ "https://schema.org/name": [
4890+ { "@value": "Hi", "@language": "en" }
4891+ ]
4892+ }
4893+ ])JSON" )};
4894+
4895+ EXPECT_JSON_LD_VALUE (schema, instance, expected);
4896+ }
4897+
48504898TEST (JSONLD_container_at_root_is_dropped) {
48514899 const auto schema{sourcemeta::core::parse_json (R"JSON( {
48524900 "$schema": "https://json-schema.org/draft/2020-12/schema",
@@ -5171,7 +5219,7 @@ TEST(JSONLD_container_language_array_with_nonstring_member_is_error) {
51715219
51725220 EXPECT_JSON_LD_RESOLUTION_ERROR (
51735221 schema, instance, " /x" , sourcemeta::blaze::JSONLDFacet::Container,
5174- " A JSON-LD language container requires string members" );
5222+ " A JSON-LD language container requires string or null members" );
51755223}
51765224
51775225TEST (JSONLD_container_language_nested_array_member_is_error) {
@@ -5192,7 +5240,7 @@ TEST(JSONLD_container_language_nested_array_member_is_error) {
51925240
51935241 EXPECT_JSON_LD_RESOLUTION_ERROR (
51945242 schema, instance, " /x" , sourcemeta::blaze::JSONLDFacet::Container,
5195- " A JSON-LD language container requires string members" );
5243+ " A JSON-LD language container requires string or null members" );
51965244}
51975245
51985246TEST (JSONLD_container_uppercase_value_is_a_resolution_error) {
@@ -5424,7 +5472,7 @@ TEST(JSONLD_container_language_object_member_is_error) {
54245472
54255473 EXPECT_JSON_LD_RESOLUTION_ERROR (
54265474 schema, instance, " /x" , sourcemeta::blaze::JSONLDFacet::Container,
5427- " A JSON-LD language container requires string members" );
5475+ " A JSON-LD language container requires string or null members" );
54285476}
54295477
54305478TEST (JSONLD_container_set_single_nested_array_flattens) {
0 commit comments