@@ -23,20 +23,33 @@ describe('Almanac', () => {
23
23
} )
24
24
25
25
it ( 'adds runtime facts' , ( ) => {
26
- almanac = new Almanac ( new Map ( ) , { modelId : 'XYZ' } )
26
+ almanac = new Almanac ( )
27
+ almanac . addFact ( 'modelId' , 'XYZ' )
27
28
expect ( almanac . factMap . get ( 'modelId' ) . value ) . to . equal ( 'XYZ' )
28
29
} )
29
30
} )
30
31
31
- describe ( 'constructor ' , ( ) => {
32
+ describe ( 'addFact ' , ( ) => {
32
33
it ( 'supports runtime facts as key => values' , ( ) => {
33
- almanac = new Almanac ( new Map ( ) , { fact1 : 3 } )
34
+ almanac = new Almanac ( )
35
+ almanac . addFact ( 'fact1' , 3 )
34
36
return expect ( almanac . factValue ( 'fact1' ) ) . to . eventually . equal ( 3 )
35
37
} )
36
38
39
+ it ( 'supporrts runtime facts as dynamic callbacks' , async ( ) => {
40
+ almanac = new Almanac ( )
41
+ almanac . addFact ( 'fact1' , ( ) => {
42
+ factSpy ( )
43
+ return Promise . resolve ( 3 )
44
+ } )
45
+ await expect ( almanac . factValue ( 'fact1' ) ) . to . eventually . equal ( 3 )
46
+ await expect ( factSpy ) . to . have . been . calledOnce ( )
47
+ } )
48
+
37
49
it ( 'supports runtime fact instances' , ( ) => {
38
50
const fact = new Fact ( 'fact1' , 3 )
39
- almanac = new Almanac ( new Map ( ) , { fact1 : fact } )
51
+ almanac = new Almanac ( )
52
+ almanac . addFact ( fact )
40
53
return expect ( almanac . factValue ( 'fact1' ) ) . to . eventually . equal ( fact . value )
41
54
} )
42
55
} )
@@ -69,9 +82,8 @@ describe('Almanac', () => {
69
82
if ( params . userId ) return params . userId
70
83
return 'unknown'
71
84
} )
72
- const factMap = new Map ( )
73
- factMap . set ( fact . id , fact )
74
- almanac = new Almanac ( factMap )
85
+ almanac = new Almanac ( )
86
+ almanac . addFact ( fact )
75
87
} )
76
88
77
89
it ( 'allows parameters to be passed to the fact' , async ( ) => {
@@ -106,10 +118,9 @@ describe('Almanac', () => {
106
118
107
119
describe ( '_getFact' , _ => {
108
120
it ( 'retrieves the fact object' , ( ) => {
109
- const facts = new Map ( )
110
121
const fact = new Fact ( 'id' , 1 )
111
- facts . set ( fact . id , fact )
112
- almanac = new Almanac ( facts )
122
+ almanac = new Almanac ( )
123
+ almanac . addFact ( fact )
113
124
expect ( almanac . _getFact ( 'id' ) ) . to . equal ( fact )
114
125
} )
115
126
} )
@@ -124,9 +135,8 @@ describe('Almanac', () => {
124
135
125
136
function setup ( f = new Fact ( 'id' , 1 ) ) {
126
137
fact = f
127
- const facts = new Map ( )
128
- facts . set ( fact . id , fact )
129
- almanac = new Almanac ( facts )
138
+ almanac = new Almanac ( )
139
+ almanac . addFact ( fact )
130
140
}
131
141
let fact
132
142
const FACT_VALUE = 2
@@ -154,9 +164,8 @@ describe('Almanac', () => {
154
164
name : 'Thomas'
155
165
} ]
156
166
} )
157
- const factMap = new Map ( )
158
- factMap . set ( fact . id , fact )
159
- almanac = new Almanac ( factMap )
167
+ almanac = new Almanac ( )
168
+ almanac . addFact ( fact )
160
169
const result = await almanac . factValue ( 'foo' , null , '$..name' )
161
170
expect ( result ) . to . deep . equal ( [ 'George' , 'Thomas' ] )
162
171
} )
@@ -167,9 +176,8 @@ describe('Almanac', () => {
167
176
factSpy ( )
168
177
return 'unknown'
169
178
} , factOptions )
170
- const factMap = new Map ( )
171
- factMap . set ( fact . id , fact )
172
- almanac = new Almanac ( factMap )
179
+ almanac = new Almanac ( )
180
+ almanac . addFact ( fact )
173
181
}
174
182
175
183
it ( 'evaluates the fact every time when fact caching is off' , ( ) => {
0 commit comments