aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/tests/apps
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2015-09-30 17:03:30 +0200
committerStas Vilchik <vilchiks@gmail.com>2015-10-02 10:57:25 +0200
commitca6967452abc33d6d38e08e0745b9797d7d7ae0f (patch)
tree7411fe23e8ba39bbd271047f112b45ba5f73fe48 /server/sonar-web/tests/apps
parent6f9c9fed1844ef459493e099fdf3277ff362e1dc (diff)
downloadsonarqube-ca6967452abc33d6d38e08e0745b9797d7d7ae0f.tar.gz
sonarqube-ca6967452abc33d6d38e08e0745b9797d7d7ae0f.zip
SONAR-6834 add search form
Diffstat (limited to 'server/sonar-web/tests/apps')
-rw-r--r--server/sonar-web/tests/apps/background-tasks-test.js47
1 files changed, 45 insertions, 2 deletions
diff --git a/server/sonar-web/tests/apps/background-tasks-test.js b/server/sonar-web/tests/apps/background-tasks-test.js
index d9588cc26ab..a5501a5ec0a 100644
--- a/server/sonar-web/tests/apps/background-tasks-test.js
+++ b/server/sonar-web/tests/apps/background-tasks-test.js
@@ -1,10 +1,14 @@
import React from 'react/addons';
import App from '../../src/main/js/apps/background-tasks/app';
import Header from '../../src/main/js/apps/background-tasks/header';
-import {STATUSES, CURRENTS} from '../../src/main/js/apps/background-tasks/constants';
+import Search from '../../src/main/js/apps/background-tasks/search';
+import {STATUSES, CURRENTS, DEBOUNCE_DELAY} from '../../src/main/js/apps/background-tasks/constants';
let TestUtils = React.addons.TestUtils;
-let expect = require('chai').expect;
+let chai = require('chai');
+let expect = chai.expect;
+let sinon = require('sinon');
+chai.use(require('sinon-chai'));
describe('Background Tasks', function () {
describe('App', () => {
@@ -32,4 +36,43 @@ describe('Background Tasks', function () {
expect(header.length).to.equal(1);
});
});
+
+ describe('Search', () => {
+ it('should render search form', () => {
+ let spy = sinon.spy();
+ let component = TestUtils.renderIntoDocument(<Search options={{}}
+ onStatusChange={spy}
+ onCurrentsChange={spy}
+ onDateChange={spy}/>),
+ searchBox = TestUtils.scryRenderedDOMComponentsWithClass(component, 'search-box');
+ expect(searchBox).to.have.length(1);
+ });
+
+ it('should not render search form', () => {
+ let spy = sinon.spy();
+ let component = TestUtils.renderIntoDocument(<Search options={{ componentId: 'ABCD' }}
+ onStatusChange={spy}
+ onCurrentsChange={spy}
+ onDateChange={spy}/>),
+ searchBox = TestUtils.scryRenderedDOMComponentsWithClass(component, 'search-box');
+ expect(searchBox).to.be.empty;
+ });
+
+ it('should search', (done) => {
+ let spy = sinon.spy(),
+ searchSpy = sinon.spy();
+ let component = TestUtils.renderIntoDocument(<Search options={{}}
+ onStatusChange={spy}
+ onCurrentsChange={spy}
+ onDateChange={spy}
+ onSearch={searchSpy}/>);
+ let searchInput = React.findDOMNode(TestUtils.findRenderedDOMComponentWithClass(component, 'search-box-input'));
+ searchInput.value = 'some search query';
+ TestUtils.Simulate.change(searchInput);
+ setTimeout(() => {
+ expect(searchSpy).to.have.been.calledWith('some search query');
+ done();
+ }, DEBOUNCE_DELAY);
+ });
+ });
});