Skip to content

Commit 762768c

Browse files
committed
refactor: collapse polling-impl test setup into HandleResponse helper
1 parent 5abfe1b commit 762768c

1 file changed

Lines changed: 22 additions & 62 deletions

File tree

libs/server-sdk/tests/fdv2_polling_impl_test.cpp

Lines changed: 22 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -18,63 +18,46 @@ static Logger MakeNullLogger() {
1818
return Logger{std::make_shared<NullBackend>()};
1919
}
2020

21-
TEST(HandleFDv2PollResponseTest, NotModifiedSetsFdv1FallbackWhenHeaderPresent) {
21+
static FDv2SourceResult HandleResponse(
22+
unsigned status,
23+
std::optional<std::string> body,
24+
network::HttpResult::HeadersType headers) {
2225
auto logger = MakeNullLogger();
2326
FDv2ProtocolHandler handler;
27+
network::HttpResult res{status, std::move(body), std::move(headers)};
28+
return HandleFDv2PollResponse(res, &handler, logger, "test");
29+
}
2430

25-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "true"}};
26-
network::HttpResult res{304, std::nullopt, std::move(headers)};
27-
28-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
29-
31+
TEST(HandleFDv2PollResponseTest, NotModifiedSetsFdv1FallbackWhenHeaderPresent) {
32+
auto result =
33+
HandleResponse(304, std::nullopt, {{"X-LD-FD-Fallback", "true"}});
3034
EXPECT_TRUE(
3135
std::holds_alternative<FDv2SourceResult::ChangeSet>(result.value));
3236
EXPECT_TRUE(result.fdv1_fallback);
3337
}
3438

3539
TEST(HandleFDv2PollResponseTest, FlagIsFalseWhenHeaderAbsent) {
36-
auto logger = MakeNullLogger();
37-
FDv2ProtocolHandler handler;
38-
39-
network::HttpResult res{304, std::nullopt, {}};
40-
41-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
42-
40+
auto result = HandleResponse(304, std::nullopt, {});
4341
EXPECT_FALSE(result.fdv1_fallback);
4442
}
4543

4644
TEST(HandleFDv2PollResponseTest, RecoverableErrorPropagatesFlag) {
47-
auto logger = MakeNullLogger();
48-
FDv2ProtocolHandler handler;
49-
50-
network::HttpResult::HeadersType headers{{"x-ld-fd-fallback", "true"}};
51-
network::HttpResult res{400, std::nullopt, std::move(headers)};
52-
53-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
54-
45+
auto result =
46+
HandleResponse(400, std::nullopt, {{"x-ld-fd-fallback", "true"}});
5547
EXPECT_TRUE(
5648
std::holds_alternative<FDv2SourceResult::Interrupted>(result.value));
5749
EXPECT_TRUE(result.fdv1_fallback);
5850
}
5951

6052
TEST(HandleFDv2PollResponseTest, TerminalErrorPropagatesFlag) {
61-
auto logger = MakeNullLogger();
62-
FDv2ProtocolHandler handler;
63-
64-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "true"}};
65-
network::HttpResult res{401, std::nullopt, std::move(headers)};
66-
67-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
68-
53+
auto result =
54+
HandleResponse(401, std::nullopt, {{"X-LD-FD-Fallback", "true"}});
6955
EXPECT_TRUE(
7056
std::holds_alternative<FDv2SourceResult::TerminalError>(result.value));
7157
EXPECT_TRUE(result.fdv1_fallback);
7258
}
7359

7460
TEST(HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
75-
auto logger = MakeNullLogger();
76-
FDv2ProtocolHandler handler;
77-
7861
std::string const body =
7962
R"({"events":[)"
8063
R"({"event":"server-intent","data":{"payloads":[)"
@@ -86,10 +69,7 @@ TEST(HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
8669
R"({"event":"payload-transferred","data":{"state":"abc","version":1}})"
8770
R"(]})";
8871

89-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "true"}};
90-
network::HttpResult res{200, body, std::move(headers)};
91-
92-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
72+
auto result = HandleResponse(200, body, {{"X-LD-FD-Fallback", "true"}});
9373

9474
auto* change_set = std::get_if<FDv2SourceResult::ChangeSet>(&result.value);
9575
ASSERT_NE(change_set, nullptr);
@@ -98,49 +78,29 @@ TEST(HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
9878
}
9979

10080
TEST(HandleFDv2PollResponseTest, OkWithMissingBodyPropagatesFlag) {
101-
auto logger = MakeNullLogger();
102-
FDv2ProtocolHandler handler;
103-
104-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "true"}};
105-
network::HttpResult res{200, std::nullopt, std::move(headers)};
106-
107-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
108-
81+
auto result =
82+
HandleResponse(200, std::nullopt, {{"X-LD-FD-Fallback", "true"}});
10983
EXPECT_TRUE(
11084
std::holds_alternative<FDv2SourceResult::Interrupted>(result.value));
11185
EXPECT_TRUE(result.fdv1_fallback);
11286
}
11387

11488
TEST(HandleFDv2PollResponseTest, HeaderValueIsCaseInsensitive) {
115-
auto logger = MakeNullLogger();
116-
FDv2ProtocolHandler handler;
117-
118-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "TRUE"}};
119-
network::HttpResult res{304, std::nullopt, std::move(headers)};
120-
121-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
122-
89+
auto result =
90+
HandleResponse(304, std::nullopt, {{"X-LD-FD-Fallback", "TRUE"}});
12391
EXPECT_TRUE(result.fdv1_fallback);
12492
}
12593

12694
TEST(HandleFDv2PollResponseTest, HeaderValueOtherThanTrueDoesNotSetFlag) {
127-
auto logger = MakeNullLogger();
128-
FDv2ProtocolHandler handler;
129-
130-
network::HttpResult::HeadersType headers{{"X-LD-FD-Fallback", "false"}};
131-
network::HttpResult res{304, std::nullopt, std::move(headers)};
132-
133-
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
134-
95+
auto result =
96+
HandleResponse(304, std::nullopt, {{"X-LD-FD-Fallback", "false"}});
13597
EXPECT_FALSE(result.fdv1_fallback);
13698
}
13799

138100
TEST(HandleFDv2PollResponseTest, NetworkErrorDoesNotSetFlag) {
139101
auto logger = MakeNullLogger();
140102
FDv2ProtocolHandler handler;
141-
142103
network::HttpResult res{std::optional<std::string>{"connection refused"}};
143-
144104
auto result = HandleFDv2PollResponse(res, &handler, logger, "test");
145105

146106
EXPECT_TRUE(

0 commit comments

Comments
 (0)