55#include < sourcemeta/core/json.h>
66#include < sourcemeta/core/jsonschema.h>
77
8- static auto transformer_callback_error (const sourcemeta::core::Pointer &,
9- const std::string_view,
10- const std::string_view,
11- const std::string_view ) -> void {
8+ static auto transformer_callback_error (
9+ const sourcemeta::core::Pointer &, const std::string_view,
10+ const std::string_view,
11+ const sourcemeta::core::SchemaTransformRule::Result & ) -> void {
1212 throw std::runtime_error (" The transform callback must not be called" );
1313}
1414
@@ -28,14 +28,14 @@ TEST(Linter, valid_default_error_message_without_id_nested) {
2828 })JSON" )};
2929
3030 std::vector<std::tuple<sourcemeta::core::Pointer, std::string, std::string,
31- std::string >>
31+ sourcemeta::core::SchemaTransformRule::Result >>
3232 entries;
3333 const auto result =
3434 bundle.check (schema, sourcemeta::core::schema_official_walker,
3535 sourcemeta::core::schema_official_resolver,
3636 [&entries](const auto &pointer, const auto &name,
37- const auto &message, const auto &description ) {
38- entries.emplace_back (pointer, name, message, description );
37+ const auto &message, const auto &outcome ) {
38+ entries.emplace_back (pointer, name, message, outcome );
3939 });
4040
4141 EXPECT_FALSE (result.first );
@@ -46,12 +46,18 @@ TEST(Linter, valid_default_error_message_without_id_nested) {
4646 EXPECT_EQ (std::get<1 >(entries.at (0 )), " blaze/valid_default" );
4747 EXPECT_EQ (std::get<2 >(entries.at (0 )),
4848 " Only set a `default` value that validates against the schema" );
49+ EXPECT_TRUE (std::get<3 >(entries.at (0 )).description .has_value ());
4950 EXPECT_EQ (
50- std::get<3 >(entries.at (0 )),
51+ std::get<3 >(entries.at (0 )). description . value () ,
5152 R"TXT( The value was expected to be of type string but it was of type integer
5253 at instance location ""
5354 at evaluate path "/type"
5455)TXT" );
56+
57+ EXPECT_EQ (std::get<3 >(entries.at (0 )).locations .size (), 1 );
58+ EXPECT_EQ (
59+ sourcemeta::core::to_string (std::get<3 >(entries.at (0 )).locations .at (0 )),
60+ " /default" );
5561}
5662
5763TEST (Linter, valid_default_error_message_without_id_flat) {
@@ -66,14 +72,14 @@ TEST(Linter, valid_default_error_message_without_id_flat) {
6672 })JSON" )};
6773
6874 std::vector<std::tuple<sourcemeta::core::Pointer, std::string, std::string,
69- std::string >>
75+ sourcemeta::core::SchemaTransformRule::Result >>
7076 entries;
7177 const auto result =
7278 bundle.check (schema, sourcemeta::core::schema_official_walker,
7379 sourcemeta::core::schema_official_resolver,
7480 [&entries](const auto &pointer, const auto &name,
75- const auto &message, const auto &description ) {
76- entries.emplace_back (pointer, name, message, description );
81+ const auto &message, const auto &outcome ) {
82+ entries.emplace_back (pointer, name, message, outcome );
7783 });
7884
7985 EXPECT_FALSE (result.first );
@@ -83,12 +89,18 @@ TEST(Linter, valid_default_error_message_without_id_flat) {
8389 EXPECT_EQ (std::get<1 >(entries.at (0 )), " blaze/valid_default" );
8490 EXPECT_EQ (std::get<2 >(entries.at (0 )),
8591 " Only set a `default` value that validates against the schema" );
92+ EXPECT_TRUE (std::get<3 >(entries.at (0 )).description .has_value ());
8693 EXPECT_EQ (
87- std::get<3 >(entries.at (0 )),
94+ std::get<3 >(entries.at (0 )). description . value () ,
8895 R"TXT( The value was expected to be of type string but it was of type integer
8996 at instance location ""
9097 at evaluate path "/type"
9198)TXT" );
99+
100+ EXPECT_EQ (std::get<3 >(entries.at (0 )).locations .size (), 1 );
101+ EXPECT_EQ (
102+ sourcemeta::core::to_string (std::get<3 >(entries.at (0 )).locations .at (0 )),
103+ " /default" );
92104}
93105
94106TEST (Linter, valid_default_error_message_with_id_nested) {
@@ -108,14 +120,14 @@ TEST(Linter, valid_default_error_message_with_id_nested) {
108120 })JSON" )};
109121
110122 std::vector<std::tuple<sourcemeta::core::Pointer, std::string, std::string,
111- std::string >>
123+ sourcemeta::core::SchemaTransformRule::Result >>
112124 entries;
113125 const auto result =
114126 bundle.check (schema, sourcemeta::core::schema_official_walker,
115127 sourcemeta::core::schema_official_resolver,
116128 [&entries](const auto &pointer, const auto &name,
117- const auto &message, const auto &description ) {
118- entries.emplace_back (pointer, name, message, description );
129+ const auto &message, const auto &outcome ) {
130+ entries.emplace_back (pointer, name, message, outcome );
119131 });
120132
121133 EXPECT_FALSE (result.first );
@@ -126,12 +138,18 @@ TEST(Linter, valid_default_error_message_with_id_nested) {
126138 EXPECT_EQ (std::get<1 >(entries.at (0 )), " blaze/valid_default" );
127139 EXPECT_EQ (std::get<2 >(entries.at (0 )),
128140 " Only set a `default` value that validates against the schema" );
141+ EXPECT_TRUE (std::get<3 >(entries.at (0 )).description .has_value ());
129142 EXPECT_EQ (
130- std::get<3 >(entries.at (0 )),
143+ std::get<3 >(entries.at (0 )). description . value () ,
131144 R"TXT( The value was expected to be of type string but it was of type integer
132145 at instance location ""
133146 at evaluate path "/type"
134147)TXT" );
148+
149+ EXPECT_EQ (std::get<3 >(entries.at (0 )).locations .size (), 1 );
150+ EXPECT_EQ (
151+ sourcemeta::core::to_string (std::get<3 >(entries.at (0 )).locations .at (0 )),
152+ " /default" );
135153}
136154
137155TEST (Linter, valid_default_error_message_with_id_flat) {
@@ -147,14 +165,14 @@ TEST(Linter, valid_default_error_message_with_id_flat) {
147165 })JSON" )};
148166
149167 std::vector<std::tuple<sourcemeta::core::Pointer, std::string, std::string,
150- std::string >>
168+ sourcemeta::core::SchemaTransformRule::Result >>
151169 entries;
152170 const auto result =
153171 bundle.check (schema, sourcemeta::core::schema_official_walker,
154172 sourcemeta::core::schema_official_resolver,
155173 [&entries](const auto &pointer, const auto &name,
156- const auto &message, const auto &description ) {
157- entries.emplace_back (pointer, name, message, description );
174+ const auto &message, const auto &outcome ) {
175+ entries.emplace_back (pointer, name, message, outcome );
158176 });
159177
160178 EXPECT_FALSE (result.first );
@@ -164,12 +182,18 @@ TEST(Linter, valid_default_error_message_with_id_flat) {
164182 EXPECT_EQ (std::get<1 >(entries.at (0 )), " blaze/valid_default" );
165183 EXPECT_EQ (std::get<2 >(entries.at (0 )),
166184 " Only set a `default` value that validates against the schema" );
185+ EXPECT_TRUE (std::get<3 >(entries.at (0 )).description .has_value ());
167186 EXPECT_EQ (
168- std::get<3 >(entries.at (0 )),
187+ std::get<3 >(entries.at (0 )). description . value () ,
169188 R"TXT( The value was expected to be of type string but it was of type integer
170189 at instance location ""
171190 at evaluate path "/type"
172191)TXT" );
192+
193+ EXPECT_EQ (std::get<3 >(entries.at (0 )).locations .size (), 1 );
194+ EXPECT_EQ (
195+ sourcemeta::core::to_string (std::get<3 >(entries.at (0 )).locations .at (0 )),
196+ " /default" );
173197}
174198
175199TEST (Linter, valid_default_1) {
0 commit comments