From 6a547779ff441becb8662e8ee84507775b0a2ed6 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Tue, 9 May 2017 07:57:13 +0100 Subject: Fixed search terms not highlight Closes #31997 --- spec/javascripts/gl_dropdown_spec.js | 46 +++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) (limited to 'spec/javascripts/gl_dropdown_spec.js') diff --git a/spec/javascripts/gl_dropdown_spec.js b/spec/javascripts/gl_dropdown_spec.js index c207fb00a47..eb532dff5a1 100644 --- a/spec/javascripts/gl_dropdown_spec.js +++ b/spec/javascripts/gl_dropdown_spec.js @@ -44,21 +44,18 @@ require('~/lib/utils/url_utility'); preloadFixtures('static/gl_dropdown.html.raw'); loadJSONFixtures('projects.json'); - function initDropDown(hasRemote, isFilterable) { - this.dropdownButtonElement = $('#js-project-dropdown', this.dropdownContainerElement).glDropdown({ + function initDropDown(hasRemote, isFilterable, extraOpts = {}) { + const options = Object.assign({ selectable: true, filterable: isFilterable, data: hasRemote ? remoteMock.bind({}, this.projectsData) : this.projectsData, search: { fields: ['name'] }, - text: (project) => { - (project.name_with_namespace || project.name); - }, - id: (project) => { - project.id; - } - }); + text: project => (project.name_with_namespace || project.name), + id: project => project.id, + }, extraOpts); + this.dropdownButtonElement = $('#js-project-dropdown', this.dropdownContainerElement).glDropdown(options); } beforeEach(() => { @@ -80,6 +77,37 @@ require('~/lib/utils/url_utility'); expect(this.dropdownContainerElement).toHaveClass('open'); }); + it('escapes HTML as text', () => { + this.projectsData[0].name_with_namespace = ''; + + initDropDown.call(this, false); + + this.dropdownButtonElement.click(); + + expect( + $('.dropdown-content li:first-child').text(), + ).toBe(''); + }); + + it('should output HTML when highlighting', () => { + this.projectsData[0].name_with_namespace = 'testing'; + $('.dropdown-input .dropdown-input-field').val('test'); + + initDropDown.call(this, false, true, { + highlight: true, + }); + + this.dropdownButtonElement.click(); + + expect( + $('.dropdown-content li:first-child').text(), + ).toBe('testing'); + + expect( + $('.dropdown-content li:first-child a').html(), + ).toBe('testing'); + }); + describe('that is open', () => { beforeEach(() => { initDropDown.call(this, false, false); -- cgit v1.2.1 From 269c0fe00715cf2ebf6e7e9f9f8fb6feef5d610d Mon Sep 17 00:00:00 2001 From: Filipa Lacerda Date: Wed, 10 May 2017 16:17:31 +0000 Subject: Replace old isObject for underscore methods --- spec/javascripts/gl_dropdown_spec.js | 1 - 1 file changed, 1 deletion(-) (limited to 'spec/javascripts/gl_dropdown_spec.js') diff --git a/spec/javascripts/gl_dropdown_spec.js b/spec/javascripts/gl_dropdown_spec.js index eb532dff5a1..8f90ed69e64 100644 --- a/spec/javascripts/gl_dropdown_spec.js +++ b/spec/javascripts/gl_dropdown_spec.js @@ -2,7 +2,6 @@ require('~/gl_dropdown'); require('~/lib/utils/common_utils'); -require('~/lib/utils/type_utility'); require('~/lib/utils/url_utility'); (() => { -- cgit v1.2.1