| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 | describe("DocsNavigationCtrl", function() {
  beforeEach(module('docsApp'));
  var ctrl, $scope;
  beforeEach(function() {
    module(function($provide) {
      $provide.value('docsPages', []);
      $provide.factory('docsSearch', function() {
        return function(q) {
          return ['one','two','three'];
        };
      });
    });
    inject(function($controller, $rootScope, $location, docsSearch) {
      $scope = $rootScope.$new();
      ctrl = $controller('DocsNavigationCtrl', {
        $scope : $scope,
        $location : $location,
        docsSearch : docsSearch
      });
    });
  });
  it("should search and return data from docsSearch", function() {
    $scope.search('1234')
    expect($scope.results.join(',')).toBe('one,two,three');
    expect($scope.hasResults).toBe(true);
  });
  it("should avoid searching if the search term is too short", function() {
    $scope.search('1')
    expect($scope.results.length).toBe(0);
    expect($scope.hasResults).toBe(false);
  });
  it("should set the columns classname based on the total grouped results", function() {
    $scope.search('1234');
    expect($scope.colClassName).toBe('cols-3');
    $scope.search('1');
    expect($scope.colClassName).toBe(null);
  });
  it("should hide and clear the results when called", function() {
    $scope.hasResults = true;
    $scope.results = ['one'];
    $scope.colClassName = '...';
    $scope.hideResults();
    expect($scope.hasResults).toBe(false);
    expect($scope.results.length).toBe(0);
    expect($scope.colClassName).toBe(null);
  });
  it("should hide, clear and change the path of the page when submitted", inject(function($location) {
    $scope.hasResults = true;
    $scope.results = {
      api : [
        {url : '/home'}
      ],
      tutorial : [
        {url : '/tutorial'}
      ]
    };
    $scope.submit();
    expect($location.path()).toBe('/home');
    expect($scope.results.length).toBe(0);
    expect($scope.hasResults).toBe(false);
  }));
});
 |