aboutsummaryrefslogtreecommitdiff
path: root/js/tests/unit/tab.spec.js
diff options
context:
space:
mode:
authorPierre Souchay <[email protected]>2022-11-07 13:43:06 +0100
committerGitHub <[email protected]>2022-11-07 14:43:06 +0200
commitef4e2daa48193463b36fdc297d79c6a002e4ee67 (patch)
treedb68bf3bc32bfdfce97f1c3824c29c86e24b8f27 /js/tests/unit/tab.spec.js
parente81e7cda90026cdb2a05fcdadd2d66f48f0bbdc4 (diff)
downloadbootstrap-ef4e2daa48193463b36fdc297d79c6a002e4ee67.tar.xz
bootstrap-ef4e2daa48193463b36fdc297d79c6a002e4ee67.zip
Properly escape IDs in getSelector() to handle weird IDs (#35565) (#35566)
Diffstat (limited to 'js/tests/unit/tab.spec.js')
-rw-r--r--js/tests/unit/tab.spec.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js
index 896e61180..66238efbb 100644
--- a/js/tests/unit/tab.spec.js
+++ b/js/tests/unit/tab.spec.js
@@ -177,6 +177,43 @@ describe('Tab', () => {
})
})
+ it('should work with tab id being an int', done => {
+ fixtureEl.innerHTML = [
+ '<div class="card-header d-block d-inline-block">',
+ ' <ul class="nav nav-tabs card-header-tabs" id="page_tabs">',
+ ' <li class="nav-item">',
+ ' <a class="nav-link" draggable="false" data-toggle="tab" href="#tab1">',
+ ' Working Tab 1 (#tab1)',
+ ' </a>',
+ ' </li>',
+ ' <li class="nav-item">',
+ ' <a id="trigger2" class="nav-link" draggable="false" data-toggle="tab" href="#2">',
+ ' Tab with numeric ID should work (#2)',
+ ' </a>',
+ ' </li>',
+ ' </ul>',
+ '</div>',
+ '<div class="card-body">',
+ ' <div class="tab-content" id="page_content">',
+ ' <div class="tab-pane fade" id="tab1">',
+ ' Working Tab 1 (#tab1) Content Here',
+ ' </div>',
+ ' <div class="tab-pane fade" id="2">',
+ ' Working Tab 2 (#2) with numeric ID',
+ ' </div>',
+ '</div>'
+ ].join('')
+ const profileTriggerEl = fixtureEl.querySelector('#trigger2')
+ const tab = new Tab(profileTriggerEl)
+
+ profileTriggerEl.addEventListener('shown.bs.tab', () => {
+ expect(fixtureEl.querySelector('#' + CSS.escape('2'))).toHaveClass('active')
+ done()
+ })
+
+ tab.show()
+ })
+
it('should not fire shown when show is prevented', () => {
return new Promise((resolve, reject) => {
fixtureEl.innerHTML = '<div class="nav"><div class="nav-link"></div></div>'