Skip to content

Commit 1962c00

Browse files
committed
Split flagd tests to smaller testcases
Signed-off-by: Marcin Olko <molko@google.com>
1 parent dc5c839 commit 1962c00

1 file changed

Lines changed: 40 additions & 15 deletions

File tree

providers/flagd/tests/evaluator/flagd_ops_test.cpp

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@ class FlagdOpsTest : public ::testing::Test {
2020
JsonLogic json_logic_;
2121
};
2222

23-
TEST_F(FlagdOpsTest, StartsWith) {
23+
TEST_F(FlagdOpsTest, StartsWithBasic) {
2424
json data = json::object();
2525

26-
// Basic success
2726
EXPECT_TRUE(
2827
json_logic_
2928
.Apply(json::parse(R"({"starts_with": ["hello world", "hello"]})"),
@@ -34,17 +33,23 @@ TEST_F(FlagdOpsTest, StartsWith) {
3433
.Apply(json::parse(R"({"starts_with": ["hello world", "world"]})"),
3534
data)
3635
.value());
36+
}
37+
38+
TEST_F(FlagdOpsTest, StartsWithArgEvaluation) {
39+
json data = json::object();
3740

38-
// Evaluation of arguments
3941
data["prefix"] = "hello";
4042
EXPECT_TRUE(
4143
json_logic_
4244
.Apply(json::parse(
4345
R"({"starts_with": ["hello world", {"var": "prefix"}]})"),
4446
data)
4547
.value());
48+
}
49+
50+
TEST_F(FlagdOpsTest, StartsWithNegative) {
51+
json data = json::object();
4652

47-
// Error cases
4853
EXPECT_FALSE(
4954
json_logic_.Apply(json::parse(R"({"starts_with": ["a", "abc"]})"), data)
5055
.value());
@@ -53,10 +58,9 @@ TEST_F(FlagdOpsTest, StartsWith) {
5358
.value());
5459
}
5560

56-
TEST_F(FlagdOpsTest, EndsWith) {
61+
TEST_F(FlagdOpsTest, EndsWithBasic) {
5762
json data = json::object();
5863

59-
// Basic success
6064
EXPECT_TRUE(
6165
json_logic_
6266
.Apply(json::parse(R"({"ends_with": ["hello world", "world"]})"),
@@ -67,17 +71,23 @@ TEST_F(FlagdOpsTest, EndsWith) {
6771
.Apply(json::parse(R"({"ends_with": ["hello world", "hello"]})"),
6872
data)
6973
.value());
74+
}
75+
76+
TEST_F(FlagdOpsTest, EndsWithArgEvaluation) {
77+
json data = json::object();
7078

71-
// Evaluation of arguments
7279
data["suffix"] = "world";
7380
EXPECT_TRUE(
7481
json_logic_
7582
.Apply(json::parse(
7683
R"({"ends_with": ["hello world", {"var": "suffix"}]})"),
7784
data)
7885
.value());
86+
}
87+
88+
TEST_F(FlagdOpsTest, EndsWithNegative) {
89+
json data = json::object();
7990

80-
// Error cases
8191
EXPECT_FALSE(
8292
json_logic_.Apply(json::parse(R"({"ends_with": ["a", "abc"]})"), data)
8393
.value());
@@ -86,10 +96,9 @@ TEST_F(FlagdOpsTest, EndsWith) {
8696
.value());
8797
}
8898

89-
TEST_F(FlagdOpsTest, SemVer) {
99+
TEST_F(FlagdOpsTest, SemVerBasic) {
90100
json data = json::object();
91101

92-
// Basic comparison
93102
EXPECT_TRUE(
94103
json_logic_
95104
.Apply(json::parse(R"({"sem_ver": ["1.2.3", "=", "1.2.3"]})"), data)
@@ -114,8 +123,11 @@ TEST_F(FlagdOpsTest, SemVer) {
114123
json_logic_
115124
.Apply(json::parse(R"({"sem_ver": ["1.2.3", "<=", "1.2.3"]})"), data)
116125
.value());
126+
}
127+
128+
TEST_F(FlagdOpsTest, SemVerPreRelease) {
129+
json data = json::object();
117130

118-
// Pre-release precedence
119131
EXPECT_TRUE(
120132
json_logic_
121133
.Apply(json::parse(R"({"sem_ver": ["1.0.0-alpha", "<", "1.0.0"]})"),
@@ -127,16 +139,22 @@ TEST_F(FlagdOpsTest, SemVer) {
127139
R"({"sem_ver": ["1.0.0-alpha", "<", "1.0.0-alpha.1"]})"),
128140
data)
129141
.value());
142+
}
143+
144+
TEST_F(FlagdOpsTest, SemVerBuildMetadata) {
145+
json data = json::object();
130146

131-
// Build metadata ignored
132147
EXPECT_TRUE(
133148
json_logic_
134149
.Apply(json::parse(
135150
R"({"sem_ver": ["1.0.0+build.1", "=", "1.0.0+build.2"]})"),
136151
data)
137152
.value());
153+
}
154+
155+
TEST_F(FlagdOpsTest, SemVerPrefix) {
156+
json data = json::object();
138157

139-
// v/V prefix
140158
EXPECT_TRUE(
141159
json_logic_
142160
.Apply(json::parse(R"({"sem_ver": ["v1.2.3", "=", "1.2.3"]})"), data)
@@ -145,8 +163,11 @@ TEST_F(FlagdOpsTest, SemVer) {
145163
json_logic_
146164
.Apply(json::parse(R"({"sem_ver": ["1.2.3", "=", "V1.2.3"]})"), data)
147165
.value());
166+
}
167+
168+
TEST_F(FlagdOpsTest, SemVerCompatibleOperators) {
169+
json data = json::object();
148170

149-
// Compatible operators (^ and ~)
150171
EXPECT_TRUE(
151172
json_logic_
152173
.Apply(json::parse(R"({"sem_ver": ["1.2.3", "^", "1.0.0"]})"), data)
@@ -163,7 +184,11 @@ TEST_F(FlagdOpsTest, SemVer) {
163184
json_logic_
164185
.Apply(json::parse(R"({"sem_ver": ["1.3.0", "~", "1.2.0"]})"), data)
165186
.value());
166-
// Partial version support (v1.2 -> 1.2.0, v1 -> 1.0.0)
187+
}
188+
189+
TEST_F(FlagdOpsTest, SemVerPartialVersion) {
190+
json data = json::object();
191+
167192
EXPECT_TRUE(
168193
json_logic_
169194
.Apply(json::parse(R"({"sem_ver": ["v1.2", "=", "1.2.0"]})"), data)

0 commit comments

Comments
 (0)