Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4149776
test_mw.echo.dm.PaginationModel.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
test_mw.echo.dm.PaginationModel.js
View Options
QUnit
.
module
(
'ext.echo.dm - PaginationModel'
);
QUnit
.
test
.
each
(
'Constructing the model'
,
{
'Empty config'
:
{
config
:
{},
expected
:
{}
},
'Overriding defaults'
:
{
config
:
{
pageNext
:
'continueValNext|123'
,
itemsPerPage
:
10
},
expected
:
{
getNextPageContinue
:
'continueValNext|123'
,
hasNextPage
:
true
,
getItemsPerPage
:
10
,
getCurrentPageItemCount
:
10
}
}
},
(
assert
,
data
)
=>
{
const
defaultValues
=
{
getPageContinue
:
undefined
,
getCurrPageIndex
:
0
,
getPrevPageContinue
:
''
,
getCurrPageContinue
:
''
,
getNextPageContinue
:
''
,
hasPrevPage
:
false
,
hasNextPage
:
false
,
getCurrentPageItemCount
:
25
,
getItemsPerPage
:
25
};
const
expected
=
$
.
extend
(
true
,
{},
defaultValues
,
data
.
expected
);
const
model
=
new
mw
.
echo
.
dm
.
PaginationModel
(
data
.
config
);
for
(
const
method
in
expected
)
{
assert
.
deepEqual
(
// Run the method
model
[
method
](),
// Expected value
expected
[
method
],
// Message
method
);
}
}
);
QUnit
.
test
(
'Emitting update event'
,
(
assert
)
=>
{
const
results
=
[];
const
model
=
new
mw
.
echo
.
dm
.
PaginationModel
();
// Listen to update event
model
.
on
(
'update'
,
()
=>
{
results
.
push
(
[
model
.
getCurrPageIndex
(),
model
.
hasNextPage
()
]
);
}
);
// Trigger events
// Set up initial pages (first page is 0)
model
.
setPageContinue
(
1
,
'page2|2'
);
// [ [ 0, true ] ]
model
.
setPageContinue
(
2
,
'page3|3'
);
// [ [ 0, true ], [ 0, true ] ]
model
.
setPageContinue
(
3
,
'page4|4'
);
// [ [ 0, true ], [ 0, true ], [ 0, true ] ]
model
.
forwards
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ] ]
model
.
forwards
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ], [ 2, true ] ]
model
.
forwards
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ], [ 2, true ], [ 3, false ] ]
model
.
backwards
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ], [ 2, true ], [ 3, false ], [ 2, true ] ]
model
.
setCurrentPageItemCount
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ], [ 2, true ], [ 3, false ], [ 2, true ], [ 2, true ] ]
model
.
reset
();
// [ [ 0, true ], [ 0, true ], [ 0, true ], [ 1, true ], [ 2, true ], [ 3, false ], [ 2, true ], [ 2, true ], [ 0, false ] ]
assert
.
deepEqual
(
// Actual
results
,
// Expected:
[
[
0
,
true
],
[
0
,
true
],
[
0
,
true
],
[
1
,
true
],
[
2
,
true
],
[
3
,
false
],
[
2
,
true
],
[
2
,
true
],
[
0
,
false
]
],
// Message
'Update events emitted'
);
}
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Aug 19 2026, 19:18 (6 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
6c/75/79dcbb3aa33e406946ae21a6adac
Default Alt Text
test_mw.echo.dm.PaginationModel.js (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment