Skip to content

Commit 3dab5bb

Browse files
authored
Fix Configuration::to_json always emitting path and baseUri (#628)
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent 64ed6bb commit 3dab5bb

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/configuration/json.cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,14 @@ auto Configuration::to_json() const -> sourcemeta::core::JSON {
3232
result.assign("website", sourcemeta::core::JSON{this->website.value()});
3333
}
3434

35-
result.assign("path",
36-
sourcemeta::core::JSON{this->absolute_path.generic_string()});
37-
result.assign("baseUri", sourcemeta::core::JSON{this->base});
35+
if (!this->absolute_path.empty()) {
36+
result.assign("path",
37+
sourcemeta::core::JSON{this->absolute_path.generic_string()});
38+
}
39+
40+
if (!this->base.empty()) {
41+
result.assign("baseUri", sourcemeta::core::JSON{this->base});
42+
}
3843

3944
if (this->default_dialect.has_value()) {
4045
result.assign("defaultDialect",

test/configuration/configuration_json_test.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@ TEST(Configuration_json, to_json_minimal) {
128128
EXPECT_EQ(result, expected);
129129
}
130130

131+
TEST(Configuration_json, to_json_empty) {
132+
sourcemeta::blaze::Configuration config;
133+
134+
const auto result{config.to_json()};
135+
136+
const auto expected{sourcemeta::core::parse_json(R"JSON({})JSON")};
137+
138+
EXPECT_EQ(result, expected);
139+
}
140+
131141
TEST(Configuration_json, to_json_with_extra) {
132142
sourcemeta::blaze::Configuration config;
133143
config.absolute_path = "/test";

0 commit comments

Comments
 (0)