Files
atom/spec/app/grammar-view-spec.coffee
Corey Johnson & Nathan Sobo 8437f3ff7f Only load TextMate packages as needed in specs
Also: when a TextMate package is deactivated, remove its grammars
2013-03-26 17:35:42 -06:00

47 lines
1.9 KiB
CoffeeScript

RootView = require 'root-view'
GrammarView = require 'grammar-view'
_ = require 'underscore'
describe "GrammarView", ->
[editor, textGrammar, jsGrammar] = []
beforeEach ->
atom.activatePackage('text.tmbundle', sync: true)
atom.activatePackage('javascript.tmbundle', sync: true)
window.rootView = new RootView
rootView.open('sample.js')
editor = rootView.getActiveView()
textGrammar = _.find syntax.grammars, (grammar) -> grammar.name is 'Plain Text'
expect(textGrammar).toBeTruthy()
jsGrammar = _.find syntax.grammars, (grammar) -> grammar.name is 'JavaScript'
expect(jsGrammar).toBeTruthy()
expect(editor.getGrammar()).toBe jsGrammar
describe "when editor:select-grammar is toggled", ->
it "displays a list of all the available grammars", ->
editor.trigger 'editor:select-grammar'
grammarView = rootView.find('.grammar-view').view()
expect(grammarView).toExist()
grammars = syntax.grammars
expect(grammarView.list.children('li').length).toBe grammars.length + 1
expect(grammarView.list.children('li:first').text()).toBe 'Auto Detect'
describe "when a grammar is selected", ->
it "sets the new grammar on the editor", ->
editor.trigger 'editor:select-grammar'
grammarView = rootView.find('.grammar-view').view()
grammarView.confirmed(textGrammar)
expect(editor.getGrammar()).toBe textGrammar
describe "when auto-detect is selected", ->
it "restores the auto-detected grammar on the editor", ->
editor.trigger 'editor:select-grammar'
grammarView = rootView.find('.grammar-view').view()
grammarView.confirmed(textGrammar)
expect(editor.getGrammar()).toBe textGrammar
editor.trigger 'editor:select-grammar'
grammarView = rootView.find('.grammar-view').view()
grammarView.confirmed(grammarView.array[0])
expect(editor.getGrammar()).toBe jsGrammar