8000 Refs #31170 -- Added JavaScript tests for RelatedObjectLookups.js. · gtossou/django@91bebf1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 91bebf1

Browse files
Кайрат Макымsarahboyce
authored andcommitted
Refs #31170 -- Added JavaScript tests for RelatedObjectLookups.js.
1 parent 727731d commit 91bebf1

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@
5555
if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) {
5656
elem.value += ',' + chosenId;
5757
} else {
58-
document.getElementById(name).value = chosenId;
58+
elem.value = chosenId;
5959
}
60-
const index = relatedWindows.indexOf(win);
60+
const index = window.relatedWindows.indexOf(win);
6161
if (index > -1) {
62-
relatedWindows.splice(index, 1);
62+
window.relatedWindows.splice(index, 1);
6363
}
6464
win.close();
6565
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/* global QUnit, RelatedObjectLookups */
2+
'use strict';
3+
4+
QUnit.module('admin.RelatedObjectLookups', {
5+
beforeEach: function() {
6+
const $ = django.jQuery;
7+
$('#qunit-fixture').append(`
8+
<input type="text" id="test_id" name="test" />
9+
<input type="text" id="many_test_id" name="many_test" class="vManyToManyRawIdAdminField" />
10+
`);
11+
window.relatedWindows = window.relatedWindows || [];
12+
}
13+
});
14+
15+
QUnit.test('dismissRelatedLookupPopup closes popup window', function(assert) {
16+
const testId = 'test_id';
17+
let windowClosed = false;
18+
const mockWin = {
19+
name: testId,
20+
close: function() {
21+
windowClosed = true;
22+
}
23+
};
24+
window.dismissRelatedLookupPopup(mockWin, '123');
25+
assert.true(windowClosed, 'Popup window should be closed');
26+
});
27+
28+
QUnit.test('dismissRelatedLookupPopup removes window from relatedWindows array', function(assert) {
29+
const testId = 'test_id';
30+
const mockWin = {
31+
name: testId,
32+
close: function() {}
33+
};
34+
window.relatedWindows.push(mockWin);
35+
assert.equal(window.relatedWindows.indexOf(mockWin), 0, 'Window should be in relatedWindows array');
36+
window.dismissRelatedLookupPopup(mockWin, '123');
37+
assert.equal(window.relatedWindows.indexOf(mockWin), -1, 'Window should be removed from relatedWindows array');
38+
});

js_tests/tests.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
<script src='./admin/navigation.test.js'></script>
126126

127127
<script src='../django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js' data-cover></script>
128+
<script src='./admin/RelatedObjectLookups.test.js'></script>
128129

129130
<script src='./admin/DateTimeShortcuts.test.js'></script>
130131
<script src='../django/contrib/admin/static/admin/js/calendar.js' data-cover></script>

0 commit comments

Comments
 (0)
0