Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4146987
ve.ui.MWReferenceEditPanel.test.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
ve.ui.MWReferenceEditPanel.test.js
View Options
'use strict'
;
(
function
()
{
QUnit
.
module
(
've.ui.MWReferenceEditPanel (Cite)'
,
ve
.
test
.
utils
.
newMwEnvironment
()
);
function
getSimpleNode
(
doc
)
{
const
node
=
new
ve
.
dm
.
MWReferenceNode
(
{
type
:
'mwReference'
,
attributes
:
{
refGroup
:
'mwReference/'
},
originalDomElementsHash
:
Math
.
random
()
}
);
node
.
setDocument
(
doc
);
return
node
;
}
function
getDocRefsMock
(
node
,
reUse
)
{
const
groupRefs
=
{
getRefUsages
:
()
=>
(
reUse
?
[
node
,
node
]
:
[]
),
getInternalModelNode
:
()
=>
(
node
),
getTotalUsageCount
:
()
=>
{
const
mainRefsCount
=
reUse
?
2
:
0
;
const
subRefsCount
=
reUse
?
1
:
0
;
return
mainRefsCount
+
subRefsCount
;
}
};
return
{
getAllGroupNames
:
()
=>
(
[
'mwReference/'
]
),
getGroupRefs
:
()
=>
(
groupRefs
)
};
}
QUnit
.
test
(
'setting and getting a reference'
,
(
assert
)
=>
{
ve
.
init
.
target
.
surface
=
{
commandRegistry
:
{
registry
:
{}
}
};
const
editPanel
=
new
ve
.
ui
.
MWReferenceEditPanel
();
const
ref
=
new
ve
.
dm
.
MWReferenceModel
(
new
ve
.
dm
.
Document
(
[]
)
);
editPanel
.
setDocumentReferences
(
getDocRefsMock
()
);
const
changeHandlerSpy
=
sinon
.
spy
();
editPanel
.
connect
(
null
,
{
change
:
changeHandlerSpy
}
);
ref
.
setGroup
(
'group'
);
editPanel
.
setReferenceForEditing
(
ref
);
// values setup correctly
assert
.
strictEqual
(
editPanel
.
originalGroup
,
'group'
);
assert
.
strictEqual
(
editPanel
.
referenceGroupInput
.
getValue
(),
'group'
);
// interface setup correctly
assert
.
false
(
editPanel
.
referenceGroupInput
.
isDisabled
()
);
assert
.
false
(
editPanel
.
reuseWarning
.
isVisible
()
);
assert
.
false
(
editPanel
.
extendsWarning
.
isVisible
()
);
// change handler triggered
const
expectedChange
=
{
isModified
:
false
,
hasContent
:
false
};
assert
.
true
(
changeHandlerSpy
.
calledWith
(
expectedChange
)
);
// reference getter
editPanel
.
referenceGroupInput
.
setValue
(
''
);
assert
.
strictEqual
(
editPanel
.
getReferenceFromEditing
().
getGroup
(),
''
);
}
);
QUnit
.
test
(
're-used references'
,
(
assert
)
=>
{
ve
.
init
.
target
.
surface
=
{
commandRegistry
:
{
registry
:
{}
}
};
const
editPanel
=
new
ve
.
ui
.
MWReferenceEditPanel
();
const
ref
=
new
ve
.
dm
.
MWReferenceModel
(
new
ve
.
dm
.
Document
(
[]
)
);
editPanel
.
setDocumentReferences
(
getDocRefsMock
(
null
,
true
)
);
editPanel
.
setReferenceForEditing
(
ref
);
// interface setup correctly
assert
.
true
(
editPanel
.
reuseWarning
.
isVisible
()
);
assert
.
false
(
editPanel
.
extendsWarning
.
isVisible
()
);
}
);
QUnit
.
test
(
'sub-references'
,
(
assert
)
=>
{
ve
.
init
.
target
.
surface
=
{
commandRegistry
:
{
registry
:
{}
}
};
const
editPanel
=
new
ve
.
ui
.
MWReferenceEditPanel
();
const
doc
=
new
ve
.
dm
.
Document
(
[]
);
const
ref
=
new
ve
.
dm
.
MWReferenceModel
(
doc
);
// does exist in the example document
ref
.
extendsRef
=
'literal/bar'
;
editPanel
.
setDocumentReferences
(
getDocRefsMock
(
getSimpleNode
(
doc
)
)
);
editPanel
.
setReferenceForEditing
(
ref
);
assert
.
false
(
editPanel
.
reuseWarning
.
isVisible
()
);
assert
.
true
(
editPanel
.
extendsWarning
.
isVisible
()
);
assert
.
false
(
editPanel
.
extendsWarning
.
getLabel
().
text
().
indexOf
(
'cite-ve-dialog-reference-missing-parent-ref'
)
!==
-
1
);
// TODO improve node mock to check content insertion for the parent
// assert.true( editPanel.extendsWarning.getLabel().text().indexOf( 'Bar' ) !== -1 );
// test sub ref with missing main ref
ref
.
extendsRef
=
'literal/notexist'
;
editPanel
.
setDocumentReferences
(
getDocRefsMock
()
);
editPanel
.
setReferenceForEditing
(
ref
);
assert
.
false
(
editPanel
.
reuseWarning
.
isVisible
()
);
assert
.
true
(
editPanel
.
extendsWarning
.
isVisible
()
);
assert
.
true
(
editPanel
.
extendsWarning
.
getLabel
().
text
().
indexOf
(
'cite-ve-dialog-reference-missing-parent-ref'
)
!==
-
1
);
}
);
}()
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Aug 19 2026, 18:13 (5 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
3a/96/3c477227a6604bb91a07b93fc1df
Default Alt Text
ve.ui.MWReferenceEditPanel.test.js (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment