See #713. Add tests for extracting configuration from package settings

This commit is contained in:
Glavin Wiechert 2016-03-30 01:28:48 -03:00
parent caabb95ed7
commit 400f019576
1 changed files with 113 additions and 5 deletions

View File

@ -31,13 +31,13 @@ describe "Atom-Beautify", ->
describe "Beautifiers", -> describe "Beautifiers", ->
beautifier = null
beforeEach ->
beautifier = new Beautifier()
describe "Beautifier::run", -> describe "Beautifier::run", ->
beautifier = null
beforeEach ->
beautifier = new Beautifier()
it "should error when beautifier's program not found", -> it "should error when beautifier's program not found", ->
expect(beautifier).not.toBe(null) expect(beautifier).not.toBe(null)
expect(beautifier instanceof Beautifier).toBe(true) expect(beautifier instanceof Beautifier).toBe(true)
@ -186,6 +186,114 @@ describe "Atom-Beautify", ->
p.then(cb, cb) p.then(cb, cb)
return p return p
describe "Options", ->
editor = null
beautifier = null
workspaceElement = atom.views.getView(atom.workspace)
beforeEach ->
beautifier = new Beautifiers()
waitsForPromise ->
atom.workspace.open().then (e) ->
editor = e
expect(editor.getText()).toEqual("")
beautifyEditor = (callback) ->
isComplete = false
beforeText = null
delay = 500
runs ->
beforeText = editor.getText()
atom.commands.dispatch workspaceElement, "atom-beautify:beautify-editor"
setTimeout(->
isComplete = true
, delay)
waitsFor ->
isComplete
runs ->
afterText = editor.getText()
expect(typeof beforeText).toBe('string')
expect(typeof afterText).toBe('string')
return callback(beforeText, afterText)
describe "JavaScript", ->
beforeEach ->
waitsForPromise ->
packName = 'language-javascript'
atom.packages.activatePackage(packName)
runs ->
# Setup Editor
code = "var hello='world';function(){console.log('hello '+hello)}"
editor.setText(code)
# console.log(atom.grammars.grammarsByScopeName)
grammar = atom.grammars.selectGrammar('source.js')
expect(grammar.name).toBe('JavaScript')
editor.setGrammar(grammar)
expect(editor.getGrammar().name).toBe('JavaScript')
# See https://discuss.atom.io/t/solved-settimeout-not-working-firing-in-specs-tests/11427/17
jasmine.unspy(window, 'setTimeout')
afterEach ->
atom.packages.deactivatePackages()
atom.packages.unloadPackages()
describe ".jsbeautifyrc", ->
describe "Package settings", ->
getOptions = (callback) ->
options = null
waitsForPromise ->
console.log('beautifier', beautifier.getOptionsForPath, beautifier)
allOptions = beautifier.getOptionsForPath(null, null)
# Resolve options with promises
return Promise.all(allOptions)
.then((allOptions) ->
options = allOptions
)
runs ->
callback(options)
it "should change indent_size to 1", ->
atom.config.set('atom-beautify.js.indent_size', 1)
getOptions (allOptions) ->
expect(typeof allOptions).toBe('object')
configOptions = allOptions[1]
expect(typeof configOptions).toBe('object')
expect(configOptions.js.indent_size).toBe(1)
beautifyEditor (beforeText, afterText) ->
# console.log(beforeText, afterText, editor)
expect(afterText).toBe("""var hello = 'world';
function() {
console.log('hello ' + hello)
}""")
it "should change indent_size to 10", ->
atom.config.set('atom-beautify.js.indent_size', 10)
getOptions (allOptions) ->
expect(typeof allOptions).toBe('object')
configOptions = allOptions[1]
expect(typeof configOptions).toBe('object')
expect(configOptions.js.indent_size).toBe(10)
beautifyEditor (beforeText, afterText) ->
# console.log(beforeText, afterText, editor)
expect(afterText).toBe("""var hello = 'world';
function() {
console.log('hello ' + hello)
}""")
describe "Languages", -> describe "Languages", ->
languages = null languages = null