Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5987680
jest.setup.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
jest.setup.js
View Options
// Adapted from CommunityRequests (https://w.wiki/Ewtf)
const
vueConfig
=
require
(
'@vue/test-utils'
).
config
;
global
.
mw
=
require
(
'@wikimedia/mw-node-qunit/src/mockMediaWiki.js'
)();
jest
.
mock
(
'mediawiki.api'
,
()
=>
{
mw
.
Api
=
class
{
get
(
params
)
{
if
(
params
.
action
===
'query'
&&
params
.
meta
===
'siteinfo'
&&
params
.
siprop
===
'namespaces'
)
{
return
Promise
.
resolve
(
require
(
'../assets/namespaces.json'
)
);
}
if
(
params
.
action
===
'query'
&&
params
.
list
===
'allusers'
)
{
if
(
params
.
auprefix
===
'Timeout'
)
{
return
Promise
.
reject
(
{
error
:
{
code
:
'maxlag'
,
info
:
'Waiting for test.wiki: 0 seconds lagged'
,
host
:
'test.wiki'
,
lag
:
0
,
'*'
:
'See https://www.mediawiki.org/w/api.php for API usage'
}
}
);
}
let
users
=
require
(
'../assets/allusers.json'
).
query
.
allusers
;
if
(
params
.
auprefix
)
{
users
=
users
.
filter
(
(
v
)
=>
v
.
name
.
startsWith
(
params
.
auprefix
)
);
}
if
(
params
.
aulimit
)
{
users
=
users
.
slice
(
0
,
params
.
aulimit
+
1
);
}
return
Promise
.
resolve
(
{
query
:
{
allusers
:
users
}
}
);
}
}
};
},
{
virtual
:
true
}
);
jest
.
mock
(
'mediawiki.util'
,
()
=>
{
mw
.
util
=
mw
.
util
||
{};
/**
* Don't actually do any debouncing. This can make tests flaky.
*
* @param {Function} func
* @return {Function} func
*/
mw
.
util
.
debounce
=
(
func
)
=>
func
;
},
{
virtual
:
true
}
);
/**
* Mock for the calls to Core's $i18n plugin which returns a mw.Message object.
*
* @param {string} key The key of the message to parse.
* @param {...*} args Arbitrary number of arguments to be parsed.
* @return {Object} mw.Message-like object with .text() and .parse() methods.
*/
function
$i18nMock
(
key
,
...
args
)
{
function
serializeArgs
()
{
return
args
.
length
?
`
${
key
}
:[
${
args
.
join
(
','
)
}
]`
:
key
;
}
return
{
text
:
()
=>
serializeArgs
(),
parse
:
()
=>
serializeArgs
()
};
}
// Mock Vue plugins in test suites.
vueConfig
.
global
.
provide
=
{
i18n
:
$i18nMock
};
vueConfig
.
global
.
mocks
=
{
$i18n
:
$i18nMock
};
vueConfig
.
global
.
directives
=
{
'i18n-html'
:
(
el
,
binding
)
=>
{
el
.
innerHTML
=
`
${
binding
.
arg
}
(
${
binding
.
value
}
)`
;
}
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Oct 4, 00:31 (2 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
44/52/45c133c9dfa6a9903ee9816bd16d
Default Alt Text
jest.setup.js (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment