define([
    'jquery', 'underscore', 'common/js/spec_helpers/template_helpers',
    'edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers', 'js/spec/edxnotes/helpers',
    'js/edxnotes/views/page_factory'
], function($, _, TemplateHelpers, AjaxHelpers, Helpers, NotesFactory) {
    'use strict';
    describe('EdxNotes NotesPage', function() {
        var notes = Helpers.getDefaultNotes();

        beforeEach(function() {
            loadFixtures('js/fixtures/edxnotes/edxnotes.html');
            TemplateHelpers.installTemplates([
                'templates/edxnotes/note-item', 'templates/edxnotes/tab-item'
            ]);
            this.view = new NotesFactory({notes: notes, pageSize: 10});
        });

        it('should be displayed properly', function() {
            var requests = AjaxHelpers.requests(this),
                tab;

            expect(this.view.$('#view-search-results')).not.toExist();
            tab = this.view.$('#view-recent-activity');
            expect(tab).toHaveClass('is-active');
            expect(tab.index()).toBe(0);

            tab = this.view.$('#view-course-structure');
            expect(tab).toExist();
            expect(tab.index()).toBe(1);

            expect(this.view.$('.tab-panel')).toExist();

            this.view.$('.search-notes-input').val('test_query');
            this.view.$('.search-notes-submit').click();
            AjaxHelpers.respondWithJson(requests, {
                count: 0,
                current_page: 1,
                num_pages: 1,
                start: 0,
                next: null,
                previous: null,
                results: []
            });
            expect(this.view.$('#view-search-results')).toHaveClass('is-active');
            expect(this.view.$('#view-recent-activity')).toExist();
            expect(this.view.$('#view-course-structure')).toExist();
        });
    });
});