@@ -4211,4 +4211,155 @@ describe('ledger api unit tests', function () {
42114211 assert . equal ( true , synopsis . publishers [ 'clifton.io' ] . options . verified )
42124212 } )
42134213 } )
4214+
4215+ describe ( 'checkBrowserActivityTime' , function ( ) {
4216+ afterEach ( function ( ) {
4217+ ledgerApi . setSynopsis ( undefined )
4218+ } )
4219+
4220+ it ( 'returns state when there are no publishers' , function ( ) {
4221+ const synopsis = {
4222+ options : { } ,
4223+ publishers : { }
4224+ }
4225+ const state = defaultAppState
4226+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4227+
4228+ ledgerApi . setSynopsis ( synopsis )
4229+
4230+ const result = ledgerApi . checkBrowserActivityTime ( state )
4231+ assert . deepEqual ( result . toJS ( ) , state . toJS ( ) )
4232+ } )
4233+
4234+ it ( 'returns state if browsingTime is cached at >= 30 minutes, and ledger doesn\'t have a fuzzed status' , function ( ) {
4235+ const synopsis = {
4236+ options : { } ,
4237+ publishers : {
4238+ 'brave.com' : {
4239+ visits : 2 ,
4240+ duration : 1080000
4241+ } ,
4242+ 'clifton.io' : {
4243+ visits : 3 ,
4244+ duration : 1200000
4245+ }
4246+ }
4247+ }
4248+ const state = defaultAppState
4249+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4250+ . setIn ( [ 'ledger' , 'about' , 'browsingTime' ] , 2280000 )
4251+
4252+ ledgerApi . setSynopsis ( synopsis )
4253+
4254+ const result = ledgerApi . checkBrowserActivityTime ( state )
4255+ assert . deepEqual ( result . toJS ( ) , state . toJS ( ) )
4256+ } )
4257+
4258+ it ( 'return state if cached time is less than 30 minutes and status is not fuzzed' , function ( ) {
4259+ const synopsis = {
4260+ options : { } ,
4261+ publishers : {
4262+ 'brave.com' : {
4263+ visits : 2 ,
4264+ duration : 420000
4265+ } ,
4266+ 'clifton.io' : {
4267+ visits : 3 ,
4268+ duration : 425000
4269+ }
4270+ }
4271+ }
4272+ const state = defaultAppState
4273+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4274+ . setIn ( [ 'ledger' , 'about' , 'status' ] , ledgerStatuses . CORRUPTED_SEED )
4275+
4276+ ledgerApi . setSynopsis ( synopsis )
4277+
4278+ const result = ledgerApi . checkBrowserActivityTime ( state )
4279+ assert . deepEqual ( result . toJS ( ) , state . toJS ( ) )
4280+ } )
4281+
4282+ it ( 'does not unset status if browsing time is less than 30 minutes, and ledger has a fuzzed status' , function ( ) {
4283+ const synopsis = {
4284+ options : { } ,
4285+ publishers : {
4286+ 'brave.com' : {
4287+ visits : 2 ,
4288+ duration : 20000
4289+ } ,
4290+ 'clifton.io' : {
4291+ visits : 3 ,
4292+ duration : 40000
4293+ }
4294+ }
4295+ }
4296+ const state = defaultAppState
4297+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4298+ . setIn ( [ 'ledger' , 'about' , 'status' ] , ledgerStatuses . FUZZING )
4299+
4300+ const expectedState = state
4301+ . setIn ( [ 'ledger' , 'about' , 'browsingTime' ] , 60000 )
4302+
4303+ ledgerApi . setSynopsis ( synopsis )
4304+
4305+ const result = ledgerApi . checkBrowserActivityTime ( state )
4306+ assert . deepEqual ( result . toJS ( ) , expectedState . toJS ( ) )
4307+ } )
4308+
4309+ it ( 'unsets status if browsingTime is >= 30 minutes and ledgerStatus is fuzzing' , function ( ) {
4310+ const synopsis = {
4311+ options : { } ,
4312+ publishers : {
4313+ 'brave.com' : {
4314+ visits : 2 ,
4315+ duration : 1080000
4316+ } ,
4317+ 'clifton.io' : {
4318+ visits : 3 ,
4319+ duration : 1200000
4320+ }
4321+ }
4322+ }
4323+ const state = defaultAppState
4324+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4325+ . setIn ( [ 'ledger' , 'about' , 'status' ] , ledgerStatuses . FUZZING )
4326+
4327+ const expectedState = state
4328+ . setIn ( [ 'ledger' , 'about' , 'browsingTime' ] , 2280000 )
4329+ . setIn ( [ 'ledger' , 'about' , 'status' ] , '' )
4330+
4331+ ledgerApi . setSynopsis ( synopsis )
4332+
4333+ const result = ledgerApi . checkBrowserActivityTime ( state )
4334+ assert . deepEqual ( result . toJS ( ) , expectedState . toJS ( ) )
4335+ } )
4336+
4337+ it ( 'caches browsing time and unsets status if browsing time is greater than 30 minutes' , function ( ) {
4338+ const synopsis = {
4339+ options : { } ,
4340+ publishers : {
4341+ 'brave.com' : {
4342+ visits : 2 ,
4343+ duration : 1080000
4344+ } ,
4345+ 'clifton.io' : {
4346+ visits : 3 ,
4347+ duration : 1200000
4348+ }
4349+ }
4350+ }
4351+ const state = defaultAppState
4352+ . setIn ( [ 'ledger' , 'synopsis' ] , Immutable . fromJS ( synopsis ) )
4353+ . setIn ( [ 'ledger' , 'about' , 'status' ] , ledgerStatuses . FUZZING )
4354+
4355+ const expectedState = state
4356+ . setIn ( [ 'ledger' , 'about' , 'status' ] , '' )
4357+ . setIn ( [ 'ledger' , 'about' , 'browsingTime' ] , 2280000 )
4358+
4359+ ledgerApi . setSynopsis ( synopsis )
4360+
4361+ const result = ledgerApi . checkBrowserActivityTime ( state )
4362+ assert . deepEqual ( result . toJS ( ) , expectedState . toJS ( ) )
4363+ } )
4364+ } )
42144365} )
0 commit comments