|
1204 | 1204 |
|
1205 | 1205 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1206 | 1206 |
|
1207 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1207 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1208 | + config_with_holdouts, |
1208 | 1209 | [feature_flag], |
1209 | 1210 | user_context, |
1210 | | - config_with_holdouts, |
1211 | 1211 | {} |
1212 | 1212 | ) |
1213 | 1213 |
|
|
1243 | 1243 |
|
1244 | 1244 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1245 | 1245 |
|
1246 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
1247 | | - [feature_flag], |
| 1246 | + result = decision_service_with_holdouts.get_decision_for_flag( |
| 1247 | + feature_flag, |
1248 | 1248 | user_context, |
1249 | | - config_with_holdouts, |
1250 | | - {} |
| 1249 | + config_with_holdouts |
1251 | 1250 | ) |
1252 | 1251 |
|
| 1252 | + # Assert that result is not nil and has expected structure |
| 1253 | + expect(result).not_to be_nil |
| 1254 | + expect(result).to respond_to(:decision) |
| 1255 | + expect(result).to respond_to(:reasons) |
| 1256 | + |
1253 | 1257 | # Verify log message for inactive holdout |
1254 | 1258 | expect(spy_logger).to have_received(:log).with( |
1255 | 1259 | Logger::INFO, |
|
1271 | 1275 |
|
1272 | 1276 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1273 | 1277 |
|
1274 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1278 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1279 | + config_with_holdouts, |
1275 | 1280 | [feature_flag], |
1276 | 1281 | user_context, |
1277 | | - config_with_holdouts, |
1278 | 1282 | {} |
1279 | 1283 | ) |
1280 | 1284 |
|
|
1300 | 1304 |
|
1301 | 1305 | user_context = project_with_holdouts.create_user_context('testUserId', user_attributes) |
1302 | 1306 |
|
1303 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1307 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1308 | + config_with_holdouts, |
1304 | 1309 | [feature_flag], |
1305 | 1310 | user_context, |
1306 | | - config_with_holdouts, |
1307 | 1311 | user_attributes |
1308 | 1312 | ) |
1309 | 1313 |
|
|
1322 | 1326 |
|
1323 | 1327 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1324 | 1328 |
|
1325 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1329 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1330 | + config_with_holdouts, |
1326 | 1331 | [feature_flag], |
1327 | 1332 | user_context, |
1328 | | - config_with_holdouts, |
1329 | 1333 | {} |
1330 | 1334 | ) |
1331 | 1335 |
|
|
1345 | 1349 | # Empty user ID should still be valid for bucketing |
1346 | 1350 | user_context = project_with_holdouts.create_user_context('', {}) |
1347 | 1351 |
|
1348 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1352 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1353 | + config_with_holdouts, |
1349 | 1354 | [feature_flag], |
1350 | 1355 | user_context, |
1351 | | - config_with_holdouts, |
1352 | 1356 | {} |
1353 | 1357 | ) |
1354 | 1358 |
|
|
1372 | 1376 |
|
1373 | 1377 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1374 | 1378 |
|
1375 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1379 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1380 | + config_with_holdouts, |
1376 | 1381 | [feature_flag], |
1377 | 1382 | user_context, |
1378 | | - config_with_holdouts, |
1379 | 1383 | {} |
1380 | 1384 | ) |
1381 | 1385 |
|
|
1499 | 1503 | unless global_holdouts.empty? |
1500 | 1504 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1501 | 1505 |
|
1502 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1506 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1507 | + config_with_holdouts, |
1503 | 1508 | [feature_flag], |
1504 | 1509 | user_context, |
1505 | | - config_with_holdouts, |
1506 | 1510 | {} |
1507 | 1511 | ) |
1508 | 1512 |
|
|
1534 | 1538 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1535 | 1539 |
|
1536 | 1540 | decision_service_with_holdouts.get_variations_for_feature_list( |
| 1541 | + config_with_holdouts, |
1537 | 1542 | [feature_flag], |
1538 | 1543 | user_context, |
1539 | | - config_with_holdouts, |
1540 | 1544 | {} |
1541 | 1545 | ) |
1542 | 1546 |
|
|
1555 | 1559 |
|
1556 | 1560 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1557 | 1561 |
|
1558 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1562 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1563 | + config_with_holdouts, |
1559 | 1564 | [feature_flag], |
1560 | 1565 | user_context, |
1561 | | - config_with_holdouts, |
1562 | 1566 | {} |
1563 | 1567 | ) |
1564 | 1568 |
|
|
1575 | 1579 | user_context = project_with_holdouts.create_user_context('testUserId', {}) |
1576 | 1580 |
|
1577 | 1581 | # The method should handle invalid holdout data without crashing |
1578 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1582 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1583 | + config_with_holdouts, |
1579 | 1584 | [feature_flag], |
1580 | 1585 | user_context, |
1581 | | - config_with_holdouts, |
1582 | 1586 | {} |
1583 | 1587 | ) |
1584 | 1588 |
|
|
1597 | 1601 | user_context2 = project_with_holdouts.create_user_context(user_id, {}) |
1598 | 1602 |
|
1599 | 1603 | result1 = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1604 | + config_with_holdouts, |
1600 | 1605 | [feature_flag], |
1601 | 1606 | user_context1, |
1602 | | - config_with_holdouts, |
1603 | 1607 | {} |
1604 | 1608 | ) |
1605 | 1609 |
|
1606 | 1610 | result2 = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1611 | + config_with_holdouts, |
1607 | 1612 | [feature_flag], |
1608 | 1613 | user_context2, |
1609 | | - config_with_holdouts, |
1610 | 1614 | {} |
1611 | 1615 | ) |
1612 | 1616 |
|
|
1637 | 1641 |
|
1638 | 1642 | user_context = project_with_holdouts.create_user_context('testUserId', user_attributes) |
1639 | 1643 |
|
1640 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1644 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1645 | + config_with_holdouts, |
1641 | 1646 | [feature_flag], |
1642 | 1647 | user_context, |
1643 | | - config_with_holdouts, |
1644 | 1648 | user_attributes |
1645 | 1649 | ) |
1646 | 1650 |
|
|
1660 | 1664 |
|
1661 | 1665 | users.each do |user_id| |
1662 | 1666 | user_context = project_with_holdouts.create_user_context(user_id, {}) |
1663 | | - _result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1667 | + result = decision_service_with_holdouts.get_variations_for_feature_list( |
| 1668 | + config_with_holdouts, |
1664 | 1669 | [feature_flag], |
1665 | 1670 | user_context, |
1666 | | - config_with_holdouts, |
1667 | 1671 | {} |
1668 | 1672 | ) |
1669 | 1673 | results << result |
|
0 commit comments