Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1425892
changeListener.test.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
changeListener.test.js
View Options
import
registerChangeListener
from
'../../src/changeListener'
;
const
stubStore
=
(
()
=>
{
let
state
;
return
{
getState
()
{
return
state
;
},
setState
(
value
)
{
state
=
value
;
}
};
}
)();
QUnit
.
module
(
'ext.popups/changeListener'
);
QUnit
.
test
(
'it should only call the callback when the state has changed'
,
function
(
assert
)
{
const
spy
=
this
.
sandbox
.
spy
();
let
boundChangeListener
;
stubStore
.
subscribe
=
(
changeListener
)
=>
{
boundChangeListener
=
changeListener
;
};
registerChangeListener
(
stubStore
,
spy
);
stubStore
.
setState
(
{}
);
if
(
!
boundChangeListener
)
{
assert
.
true
(
false
,
'The change listener was not bound.'
);
}
boundChangeListener
();
boundChangeListener
();
assert
.
strictEqual
(
spy
.
callCount
,
1
,
'The spy was called once.'
);
assert
.
true
(
spy
.
calledWith
(
undefined
,
// The initial internal state of the change listener.
{}
),
'The spy was called with the correct arguments.'
);
stubStore
.
setState
(
{
foo
:
'bar'
}
);
boundChangeListener
();
assert
.
strictEqual
(
spy
.
callCount
,
2
,
'The spy was called twice.'
);
assert
.
true
(
spy
.
calledWith
(
{},
{
foo
:
'bar'
}
),
'The spy was called with the correct arguments.'
);
}
);
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Sat, May 16, 12:11 (21 h, 19 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
ae/0e/866d7d7a769df43f7fef533fe02a
Default Alt Text
changeListener.test.js (1 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment