Skip to content

Commit acb21dc

Browse files
[AI-FSSDK] [FSSDK-12337] Remove tests not in ticket spec
Remove 3 tests not in updated Jira ticket test requirements: - LAST rollout rule selection - featureEnabled preservation - Variables propagation
1 parent ba3e6be commit acb21dc

1 file changed

Lines changed: 0 additions & 201 deletions

File tree

spec/config/datafile_project_config_spec.rb

Lines changed: 0 additions & 201 deletions
Original file line numberDiff line numberDiff line change
@@ -2104,206 +2104,5 @@ def build_datafile(experiments: [], rollouts: [], feature_flags: [])
21042104
expect(experiment['trafficAllocation'].length).to eq(1)
21052105
end
21062106

2107-
it 'should use the LAST rollout rule for everyone else variation' do
2108-
datafile = build_datafile(
2109-
experiments: [
2110-
{
2111-
'id' => 'exp_fr',
2112-
'key' => 'feature_rollout_exp',
2113-
'status' => 'Running',
2114-
'forcedVariations' => {},
2115-
'layerId' => 'layer_1',
2116-
'audienceIds' => [],
2117-
'trafficAllocation' => [{'entityId' => 'fr_var', 'endOfRange' => 5000}],
2118-
'variations' => [
2119-
{'key' => 'fr_var', 'id' => 'fr_var', 'featureEnabled' => true}
2120-
],
2121-
'type' => 'feature_rollout'
2122-
}
2123-
],
2124-
rollouts: [
2125-
{
2126-
'id' => 'rollout_1',
2127-
'experiments' => [
2128-
{
2129-
'id' => 'targeted_rule_1',
2130-
'key' => 'targeted_rule_1',
2131-
'status' => 'Running',
2132-
'forcedVariations' => {},
2133-
'layerId' => 'rollout_1',
2134-
'audienceIds' => ['aud_1'],
2135-
'trafficAllocation' => [{'entityId' => 'targeted_var_1', 'endOfRange' => 10_000}],
2136-
'variations' => [
2137-
{'key' => 'targeted_var_1', 'id' => 'targeted_var_1', 'featureEnabled' => true}
2138-
]
2139-
},
2140-
{
2141-
'id' => 'targeted_rule_2',
2142-
'key' => 'targeted_rule_2',
2143-
'status' => 'Running',
2144-
'forcedVariations' => {},
2145-
'layerId' => 'rollout_1',
2146-
'audienceIds' => ['aud_2'],
2147-
'trafficAllocation' => [{'entityId' => 'targeted_var_2', 'endOfRange' => 10_000}],
2148-
'variations' => [
2149-
{'key' => 'targeted_var_2', 'id' => 'targeted_var_2', 'featureEnabled' => true}
2150-
]
2151-
},
2152-
{
2153-
'id' => 'everyone_else_rule',
2154-
'key' => 'everyone_else_rule',
2155-
'status' => 'Running',
2156-
'forcedVariations' => {},
2157-
'layerId' => 'rollout_1',
2158-
'audienceIds' => [],
2159-
'trafficAllocation' => [{'entityId' => 'correct_everyone_var', 'endOfRange' => 10_000}],
2160-
'variations' => [
2161-
{'key' => 'correct_everyone_var', 'id' => 'correct_everyone_var', 'featureEnabled' => false}
2162-
]
2163-
}
2164-
]
2165-
}
2166-
],
2167-
feature_flags: [
2168-
{
2169-
'id' => 'flag_1',
2170-
'key' => 'test_flag',
2171-
'experimentIds' => ['exp_fr'],
2172-
'rolloutId' => 'rollout_1',
2173-
'variables' => []
2174-
}
2175-
]
2176-
)
2177-
2178-
config = Optimizely::DatafileProjectConfig.new(JSON.dump(datafile), logger, error_handler)
2179-
experiment = config.experiment_id_map['exp_fr']
2180-
2181-
variation_ids = experiment['variations'].map { |v| v['id'] }
2182-
expect(variation_ids).to include('correct_everyone_var')
2183-
expect(variation_ids).not_to include('targeted_var_1')
2184-
expect(variation_ids).not_to include('targeted_var_2')
2185-
end
2186-
2187-
it 'should preserve featureEnabled value on injected variation' do
2188-
datafile = build_datafile(
2189-
experiments: [
2190-
{
2191-
'id' => 'exp_fr',
2192-
'key' => 'feature_rollout_exp',
2193-
'status' => 'Running',
2194-
'forcedVariations' => {},
2195-
'layerId' => 'layer_1',
2196-
'audienceIds' => [],
2197-
'trafficAllocation' => [{'entityId' => 'rollout_var', 'endOfRange' => 5000}],
2198-
'variations' => [
2199-
{'key' => 'rollout_var', 'id' => 'rollout_var', 'featureEnabled' => true}
2200-
],
2201-
'type' => 'feature_rollout'
2202-
}
2203-
],
2204-
rollouts: [
2205-
{
2206-
'id' => 'rollout_1',
2207-
'experiments' => [
2208-
{
2209-
'id' => 'rollout_everyone_else',
2210-
'key' => 'rollout_everyone_else',
2211-
'status' => 'Running',
2212-
'forcedVariations' => {},
2213-
'layerId' => 'rollout_1',
2214-
'audienceIds' => [],
2215-
'trafficAllocation' => [{'entityId' => 'everyone_else_var', 'endOfRange' => 10_000}],
2216-
'variations' => [
2217-
{'key' => 'everyone_else_var', 'id' => 'everyone_else_var', 'featureEnabled' => false}
2218-
]
2219-
}
2220-
]
2221-
}
2222-
],
2223-
feature_flags: [
2224-
{
2225-
'id' => 'flag_1',
2226-
'key' => 'test_flag',
2227-
'experimentIds' => ['exp_fr'],
2228-
'rolloutId' => 'rollout_1',
2229-
'variables' => []
2230-
}
2231-
]
2232-
)
2233-
2234-
config = Optimizely::DatafileProjectConfig.new(JSON.dump(datafile), logger, error_handler)
2235-
experiment = config.experiment_id_map['exp_fr']
2236-
2237-
injected = experiment['variations'].find { |v| v['id'] == 'everyone_else_var' }
2238-
expect(injected).not_to be_nil
2239-
expect(injected['featureEnabled']).to eq(false)
2240-
end
2241-
2242-
it 'should propagate variables from the everyone else variation' do
2243-
datafile = build_datafile(
2244-
experiments: [
2245-
{
2246-
'id' => 'exp_fr',
2247-
'key' => 'feature_rollout_exp',
2248-
'status' => 'Running',
2249-
'forcedVariations' => {},
2250-
'layerId' => 'layer_1',
2251-
'audienceIds' => [],
2252-
'trafficAllocation' => [{'entityId' => 'rollout_var', 'endOfRange' => 5000}],
2253-
'variations' => [
2254-
{'key' => 'rollout_var', 'id' => 'rollout_var', 'featureEnabled' => true}
2255-
],
2256-
'type' => 'feature_rollout'
2257-
}
2258-
],
2259-
rollouts: [
2260-
{
2261-
'id' => 'rollout_1',
2262-
'experiments' => [
2263-
{
2264-
'id' => 'rollout_everyone_else',
2265-
'key' => 'rollout_everyone_else',
2266-
'status' => 'Running',
2267-
'forcedVariations' => {},
2268-
'layerId' => 'rollout_1',
2269-
'audienceIds' => [],
2270-
'trafficAllocation' => [{'entityId' => 'everyone_else_var', 'endOfRange' => 10_000}],
2271-
'variations' => [
2272-
{
2273-
'key' => 'everyone_else_var',
2274-
'id' => 'everyone_else_var',
2275-
'featureEnabled' => false,
2276-
'variables' => [
2277-
{'id' => 'var_1', 'value' => 'default_value'}
2278-
]
2279-
}
2280-
]
2281-
}
2282-
]
2283-
}
2284-
],
2285-
feature_flags: [
2286-
{
2287-
'id' => 'flag_1',
2288-
'key' => 'test_flag',
2289-
'experimentIds' => ['exp_fr'],
2290-
'rolloutId' => 'rollout_1',
2291-
'variables' => []
2292-
}
2293-
]
2294-
)
2295-
2296-
config = Optimizely::DatafileProjectConfig.new(JSON.dump(datafile), logger, error_handler)
2297-
experiment = config.experiment_id_map['exp_fr']
2298-
2299-
injected = experiment['variations'].find { |v| v['id'] == 'everyone_else_var' }
2300-
expect(injected).not_to be_nil
2301-
expect(injected['variables']).to eq([{'id' => 'var_1', 'value' => 'default_value'}])
2302-
2303-
# Verify variation_id_to_variable_usage_map is populated
2304-
variable_usage = config.variation_id_to_variable_usage_map['everyone_else_var']
2305-
expect(variable_usage).not_to be_nil
2306-
expect(variable_usage).to have_key('var_1')
2307-
end
23082107
end
23092108
end

0 commit comments

Comments
 (0)