11// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22// SPDX-License-Identifier: Apache-2.0
33
4+ import { Resource } from '@opentelemetry/resources' ;
45import { expect } from 'expect' ;
56import * as sinon from 'sinon' ;
6- import { Resource } from '@opentelemetry/resources' ;
77import { RuleCache } from '../../src/sampler/rule-cache' ;
88import { SamplingRule } from '../../src/sampler/sampling-rule' ;
99import { SamplingRuleApplier } from '../../src/sampler/sampling-rule-applier' ;
@@ -33,7 +33,7 @@ describe('RuleCache', () => {
3333 cache . updateRules ( [ defaultRule ] ) ;
3434
3535 // Expect default rule to exist
36- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 1 ) ;
36+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 1 ) ;
3737
3838 // Set up incoming rules
3939 const rule1 = createRule ( 'low' , 200 , 0 , 0.0 ) ;
@@ -47,13 +47,13 @@ describe('RuleCache', () => {
4747 cache . updateRules ( rules ) ;
4848
4949 // Default rule should be removed because it doesn't exist in the new list
50- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( rules . length ) ;
51- expect ( cache . getRuleAppliers ( ) [ 0 ] . samplingRule . RuleName ) . toEqual ( 'high' ) ;
52- expect ( cache . getRuleAppliers ( ) [ 1 ] . samplingRule . RuleName ) . toEqual ( 'A' ) ;
53- expect ( cache . getRuleAppliers ( ) [ 2 ] . samplingRule . RuleName ) . toEqual ( 'Abc' ) ;
54- expect ( cache . getRuleAppliers ( ) [ 3 ] . samplingRule . RuleName ) . toEqual ( 'ab' ) ;
55- expect ( cache . getRuleAppliers ( ) [ 4 ] . samplingRule . RuleName ) . toEqual ( 'abc' ) ;
56- expect ( cache . getRuleAppliers ( ) [ 5 ] . samplingRule . RuleName ) . toEqual ( 'low' ) ;
50+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( rules . length ) ;
51+ expect ( ( cache as any ) . ruleAppliers [ 0 ] . samplingRule . RuleName ) . toEqual ( 'high' ) ;
52+ expect ( ( cache as any ) . ruleAppliers [ 1 ] . samplingRule . RuleName ) . toEqual ( 'A' ) ;
53+ expect ( ( cache as any ) . ruleAppliers [ 2 ] . samplingRule . RuleName ) . toEqual ( 'Abc' ) ;
54+ expect ( ( cache as any ) . ruleAppliers [ 3 ] . samplingRule . RuleName ) . toEqual ( 'ab' ) ;
55+ expect ( ( cache as any ) . ruleAppliers [ 4 ] . samplingRule . RuleName ) . toEqual ( 'abc' ) ;
56+ expect ( ( cache as any ) . ruleAppliers [ 5 ] . samplingRule . RuleName ) . toEqual ( 'low' ) ;
5757 } ) ;
5858
5959 it ( 'testRuleCacheExpirationLogic' , ( ) => {
@@ -79,40 +79,40 @@ describe('RuleCache', () => {
7979
8080 cache . updateRules ( ruleAppliers ) ;
8181
82- const ruleAppliersCopy = cache . getRuleAppliers ( ) ;
82+ const ruleAppliersCopy = ( cache as any ) . ruleAppliers ;
8383
8484 const newRule3 = createRule ( 'new_rule_3' , 5 , 0 , 0.0 ) ;
8585 const newRuleAppliers = [ rule1 , rule2 , newRule3 ] ;
8686 cache . updateRules ( newRuleAppliers ) ;
8787
8888 // Check rule cache is still correct length and has correct rules
89- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 3 ) ;
90- expect ( cache . getRuleAppliers ( ) [ 0 ] . samplingRule . RuleName ) . toEqual ( 'rule_1' ) ;
91- expect ( cache . getRuleAppliers ( ) [ 1 ] . samplingRule . RuleName ) . toEqual ( 'new_rule_3' ) ;
92- expect ( cache . getRuleAppliers ( ) [ 2 ] . samplingRule . RuleName ) . toEqual ( 'rule_2' ) ;
89+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 3 ) ;
90+ expect ( ( cache as any ) . ruleAppliers [ 0 ] . samplingRule . RuleName ) . toEqual ( 'rule_1' ) ;
91+ expect ( ( cache as any ) . ruleAppliers [ 1 ] . samplingRule . RuleName ) . toEqual ( 'new_rule_3' ) ;
92+ expect ( ( cache as any ) . ruleAppliers [ 2 ] . samplingRule . RuleName ) . toEqual ( 'rule_2' ) ;
9393
9494 // Assert before and after of rule cache
95- expect ( ruleAppliersCopy [ 0 ] ) . toEqual ( cache . getRuleAppliers ( ) [ 0 ] ) ;
96- expect ( ruleAppliersCopy [ 1 ] ) . toEqual ( cache . getRuleAppliers ( ) [ 2 ] ) ;
97- expect ( ruleAppliersCopy [ 2 ] ) . not . toEqual ( cache . getRuleAppliers ( ) [ 1 ] ) ;
95+ expect ( ruleAppliersCopy [ 0 ] ) . toEqual ( ( cache as any ) . ruleAppliers [ 0 ] ) ;
96+ expect ( ruleAppliersCopy [ 1 ] ) . toEqual ( ( cache as any ) . ruleAppliers [ 2 ] ) ;
97+ expect ( ruleAppliersCopy [ 2 ] ) . not . toEqual ( ( cache as any ) . ruleAppliers [ 1 ] ) ;
9898 } ) ;
9999
100100 it ( 'testUpdateRulesRemovesOlderRule' , ( ) => {
101101 // Set up default rule in rule cache
102102 const cache = new RuleCache ( new Resource ( { } ) ) ;
103- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 0 ) ;
103+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 0 ) ;
104104
105105 const rule1 = createRule ( 'first_rule' , 200 , 0 , 0.0 ) ;
106106 const rules = [ rule1 ] ;
107107 cache . updateRules ( rules ) ;
108- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 1 ) ;
109- expect ( cache . getRuleAppliers ( ) [ 0 ] . samplingRule . RuleName ) . toEqual ( 'first_rule' ) ;
108+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 1 ) ;
109+ expect ( ( cache as any ) . ruleAppliers [ 0 ] . samplingRule . RuleName ) . toEqual ( 'first_rule' ) ;
110110
111111 const replacement_rule1 = createRule ( 'second_rule' , 200 , 0 , 0.0 ) ;
112112 const replacementRules = [ replacement_rule1 ] ;
113113 cache . updateRules ( replacementRules ) ;
114- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 1 ) ;
115- expect ( cache . getRuleAppliers ( ) [ 0 ] . samplingRule . RuleName ) . toEqual ( 'second_rule' ) ;
114+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 1 ) ;
115+ expect ( ( cache as any ) . ruleAppliers [ 0 ] . samplingRule . RuleName ) . toEqual ( 'second_rule' ) ;
116116 } ) ;
117117
118118 it ( 'testUpdateSamplingTargets' , ( ) => {
@@ -121,11 +121,11 @@ describe('RuleCache', () => {
121121 const cache = new RuleCache ( new Resource ( { } ) ) ;
122122 cache . updateRules ( [ rule1 , rule2 ] ) ;
123123
124- expect ( ( cache . getRuleAppliers ( ) [ 0 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( 1 ) ;
125- expect ( ( cache . getRuleAppliers ( ) [ 0 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( rule2 . samplingRule . FixedRate ) ;
124+ expect ( ( ( cache as any ) . ruleAppliers [ 0 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( 1 ) ;
125+ expect ( ( ( cache as any ) . ruleAppliers [ 0 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( rule2 . samplingRule . FixedRate ) ;
126126
127- expect ( ( cache . getRuleAppliers ( ) [ 1 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( 1 ) ;
128- expect ( ( cache . getRuleAppliers ( ) [ 1 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( rule1 . samplingRule . FixedRate ) ;
127+ expect ( ( ( cache as any ) . ruleAppliers [ 1 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( 1 ) ;
128+ expect ( ( ( cache as any ) . ruleAppliers [ 1 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( rule1 . samplingRule . FixedRate ) ;
129129
130130 const time = Date . now ( ) / 1000 ;
131131 const target1 = {
@@ -156,12 +156,12 @@ describe('RuleCache', () => {
156156 expect ( nextPollingInterval ) . toEqual ( target2 . Interval ) ;
157157
158158 // Ensure cache is still of length 2
159- expect ( cache . getRuleAppliers ( ) . length ) . toEqual ( 2 ) ;
159+ expect ( ( cache as any ) . ruleAppliers . length ) . toEqual ( 2 ) ;
160160
161- expect ( ( cache . getRuleAppliers ( ) [ 0 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( target2 . ReservoirQuota ) ;
162- expect ( ( cache . getRuleAppliers ( ) [ 0 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( target2 . FixedRate ) ;
163- expect ( ( cache . getRuleAppliers ( ) [ 1 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( target1 . ReservoirQuota ) ;
164- expect ( ( cache . getRuleAppliers ( ) [ 1 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( target1 . FixedRate ) ;
161+ expect ( ( ( cache as any ) . ruleAppliers [ 0 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( target2 . ReservoirQuota ) ;
162+ expect ( ( ( cache as any ) . ruleAppliers [ 0 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( target2 . FixedRate ) ;
163+ expect ( ( ( cache as any ) . ruleAppliers [ 1 ] as any ) . reservoirSampler . _root . quota ) . toEqual ( target1 . ReservoirQuota ) ;
164+ expect ( ( ( cache as any ) . ruleAppliers [ 1 ] as any ) . fixedRateSampler . _root . _ratio ) . toEqual ( target1 . FixedRate ) ;
165165
166166 const [ refreshSamplingRulesAfter , _ ] = cache . updateTargets ( targetMap , time + 1 ) ;
167167 expect ( refreshSamplingRulesAfter ) . toBe ( true ) ;
0 commit comments