@@ -23,6 +23,58 @@ public function testShouldCreateInstanceWithDatafileContent()
2323 self ::assertTrue (method_exists ($ sdk , 'getVariation ' ));
2424 }
2525
26+ public function testShouldCreateInstanceWithLogLevel ()
27+ {
28+ $ logs = [];
29+ $ sdk = Featurevisor::createInstance ([
30+ 'logLevel ' => LogLevel::DEBUG ,
31+ 'logger ' => Logger::create ([
32+ 'level ' => LogLevel::ERROR ,
33+ 'handler ' => function ($ level , $ message , $ context ) use (&$ logs ) {
34+ $ logs [] = compact ('level ' , 'message ' , 'context ' );
35+ },
36+ ]),
37+ 'datafile ' => [
38+ 'schemaVersion ' => '2 ' ,
39+ 'revision ' => '1.0 ' ,
40+ 'features ' => [],
41+ 'segments ' => [],
42+ ],
43+ ]);
44+
45+ $ sdk ->setContext (['userId ' => '123 ' ]);
46+
47+ // logger option should take precedence over logLevel option
48+ self ::assertCount (0 , $ logs );
49+ }
50+
51+ public function testShouldSetLogLevelAfterInitialization ()
52+ {
53+ $ logs = [];
54+ $ sdk = Featurevisor::createInstance ([
55+ 'logger ' => Logger::create ([
56+ 'level ' => LogLevel::ERROR ,
57+ 'handler ' => function ($ level , $ message , $ context ) use (&$ logs ) {
58+ $ logs [] = compact ('level ' , 'message ' , 'context ' );
59+ },
60+ ]),
61+ 'datafile ' => [
62+ 'schemaVersion ' => '2 ' ,
63+ 'revision ' => '1.0 ' ,
64+ 'features ' => [],
65+ 'segments ' => [],
66+ ],
67+ ]);
68+
69+ $ sdk ->setContext (['userId ' => '123 ' ]);
70+ self ::assertCount (0 , $ logs );
71+
72+ $ sdk ->setLogLevel (LogLevel::DEBUG );
73+ $ sdk ->setContext (['country ' => 'nl ' ]);
74+ self ::assertCount (1 , $ logs );
75+ self ::assertSame ('debug ' , $ logs [0 ]['level ' ]);
76+ }
77+
2678 public function testShouldConfigurePlainBucketBy ()
2779 {
2880 $ capturedBucketKey = '' ;
0 commit comments