1+ /* global jest, describe, it, expect */
2+
13import Bee from '../../src/bee' ;
2- import BeeCell from '../../src/beeCell' ;
4+ import BeeCell , { FeatureType } from '../../src/beeCell' ;
35import MazeMap from '../../src/mazeMap' ;
46
5- var baseLevel = {
7+ const baseLevel = {
68 honeyGoal : 1 ,
79 map : [
810 [ 0 ]
@@ -15,30 +17,6 @@ var baseLevel = {
1517} ;
1618
1719describe ( "Bee" , function ( ) {
18- it ( "fails if no flowerType" , function ( ) {
19- var maze = { } ;
20- var config = {
21- level : baseLevel
22- } ;
23- delete config . level . flowerType ;
24- expect ( ( ) => {
25- new Bee ( maze , config ) ;
26- } ) . toThrowError ( / b a d f l o w e r T y p e f o r B e e / ) ;
27- } ) ;
28-
29-
30- it ( "fails if invalid flowerType" , function ( ) {
31- var maze = { } ;
32- var config = {
33- level : Object . assign ( baseLevel , {
34- flowerType : 'invalid'
35- } )
36- } ;
37- expect ( ( ) => {
38- new Bee ( maze , config ) ;
39- } ) . toThrowError ( / b a d f l o w e r T y p e f o r B e e / ) ;
40- } ) ;
41-
4220 describe ( "isRedFlower" , function ( ) {
4321 /**
4422 * Shim a 1x1 maze with the given values and validate that we get the
@@ -77,4 +55,33 @@ describe("Bee", function () {
7755 validate ( 'purpleNectarHidden' , 'FC' , 1 , false , 'overriden cloud' ) ;
7856 } ) ;
7957 } ) ;
58+
59+ describe ( 'getting nectar' , ( ) => {
60+ let bee ;
61+
62+ it ( 'builds the map' , ( ) => {
63+ const map = new MazeMap ( [
64+ [ new BeeCell ( 1 , FeatureType . FLOWER , 2 ) ] ,
65+ ] ) ;
66+
67+ bee = new Bee ( {
68+ map,
69+ pegmanX : 0 ,
70+ pegmanY : 0 ,
71+ } ) ;
72+
73+ const flowerEmptySpy = jest . fn ( ) ;
74+ bee . on ( 'flowerEmpty' , flowerEmptySpy ) ;
75+ bee . reset ( ) ;
76+ expect ( bee . getCell ( 0 , 0 ) . isFlower ( ) ) . toEqual ( true ) ;
77+
78+ // Can get nectar twice.
79+ expect ( bee . tryGetNectar ( ) ) . toEqual ( true ) ;
80+ expect ( bee . tryGetNectar ( ) ) . toEqual ( true ) ;
81+
82+ // Getting nectar again returns false, and emits a "flowerEmpty" event.
83+ expect ( bee . tryGetNectar ( ) ) . toEqual ( false ) ;
84+ expect ( flowerEmptySpy ) . toHaveBeenCalledTimes ( 1 ) ;
85+ } )
86+ } ) ;
8087} ) ;
0 commit comments