@@ -23,20 +23,33 @@ describe('Almanac', () => {
2323 } )
2424
2525 it ( 'adds runtime facts' , ( ) => {
26- almanac = new Almanac ( new Map ( ) , { modelId : 'XYZ' } )
26+ almanac = new Almanac ( )
27+ almanac . addFact ( 'modelId' , 'XYZ' )
2728 expect ( almanac . factMap . get ( 'modelId' ) . value ) . to . equal ( 'XYZ' )
2829 } )
2930 } )
3031
31- describe ( 'constructor ' , ( ) => {
32+ describe ( 'addFact ' , ( ) => {
3233 it ( 'supports runtime facts as key => values' , ( ) => {
33- almanac = new Almanac ( new Map ( ) , { fact1 : 3 } )
34+ almanac = new Almanac ( )
35+ almanac . addFact ( 'fact1' , 3 )
3436 return expect ( almanac . factValue ( 'fact1' ) ) . to . eventually . equal ( 3 )
3537 } )
3638
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+
3749 it ( 'supports runtime fact instances' , ( ) => {
3850 const fact = new Fact ( 'fact1' , 3 )
39- almanac = new Almanac ( new Map ( ) , { fact1 : fact } )
51+ almanac = new Almanac ( )
52+ almanac . addFact ( fact )
4053 return expect ( almanac . factValue ( 'fact1' ) ) . to . eventually . equal ( fact . value )
4154 } )
4255 } )
@@ -69,9 +82,8 @@ describe('Almanac', () => {
6982 if ( params . userId ) return params . userId
7083 return 'unknown'
7184 } )
72- const factMap = new Map ( )
73- factMap . set ( fact . id , fact )
74- almanac = new Almanac ( factMap )
85+ almanac = new Almanac ( )
86+ almanac . addFact ( fact )
7587 } )
7688
7789 it ( 'allows parameters to be passed to the fact' , async ( ) => {
@@ -106,10 +118,9 @@ describe('Almanac', () => {
106118
107119 describe ( '_getFact' , _ => {
108120 it ( 'retrieves the fact object' , ( ) => {
109- const facts = new Map ( )
110121 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 )
113124 expect ( almanac . _getFact ( 'id' ) ) . to . equal ( fact )
114125 } )
115126 } )
@@ -124,9 +135,8 @@ describe('Almanac', () => {
124135
125136 function setup ( f = new Fact ( 'id' , 1 ) ) {
126137 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 )
130140 }
131141 let fact
132142 const FACT_VALUE = 2
@@ -154,9 +164,8 @@ describe('Almanac', () => {
154164 name : 'Thomas'
155165 } ]
156166 } )
157- const factMap = new Map ( )
158- factMap . set ( fact . id , fact )
159- almanac = new Almanac ( factMap )
167+ almanac = new Almanac ( )
168+ almanac . addFact ( fact )
160169 const result = await almanac . factValue ( 'foo' , null , '$..name' )
161170 expect ( result ) . to . deep . equal ( [ 'George' , 'Thomas' ] )
162171 } )
@@ -167,9 +176,8 @@ describe('Almanac', () => {
167176 factSpy ( )
168177 return 'unknown'
169178 } , 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 )
173181 }
174182
175183 it ( 'evaluates the fact every time when fact caching is off' , ( ) => {
0 commit comments