diff --git a/spec/atom-environment-spec.coffee b/spec/atom-environment-spec.coffee index d967fb97b..d1eabf2c8 100644 --- a/spec/atom-environment-spec.coffee +++ b/spec/atom-environment-spec.coffee @@ -126,6 +126,7 @@ describe "AtomEnvironment", -> beforeEach -> errors = [] + spyOn(atom, 'isReleasedVersion').andReturn(true) atom.onDidFailAssertion (error) -> errors.push(error) describe "if the condition is false", -> @@ -147,6 +148,11 @@ describe "AtomEnvironment", -> atom.assert(false, "a == b", {foo: 'bar'}) expect(errors[0].metadata).toEqual {foo: 'bar'} + describe "when Atom has been built from source", -> + it "throws an error", -> + atom.isReleasedVersion.andReturn(false) + expect(-> atom.assert(false, 'testing')).toThrow('Assertion failed: testing') + describe "if the condition is true", -> it "does nothing", -> result = atom.assert(true, "a == b") diff --git a/spec/dom-element-pool-spec.js b/spec/dom-element-pool-spec.js index 9de932e27..91120ee48 100644 --- a/spec/dom-element-pool-spec.js +++ b/spec/dom-element-pool-spec.js @@ -3,7 +3,10 @@ const DOMElementPool = require ('../src/dom-element-pool') describe('DOMElementPool', function () { let domElementPool - beforeEach(() => { domElementPool = new DOMElementPool() }) + beforeEach(() => { + domElementPool = new DOMElementPool() + spyOn(atom, 'isReleasedVersion').andReturn(true) + }) it('builds DOM nodes, recycling them when they are freed', function () { let elements diff --git a/spec/text-editor-spec.coffee b/spec/text-editor-spec.coffee index 911270d16..81c69f63f 100644 --- a/spec/text-editor-spec.coffee +++ b/spec/text-editor-spec.coffee @@ -28,7 +28,13 @@ describe "TextEditor", -> editor.foldBufferRow(4) expect(editor.isFoldedAtBufferRow(4)).toBeTruthy() - editor2 = TextEditor.deserialize(editor.serialize(), atom) + editor2 = TextEditor.deserialize(editor.serialize(), { + assert: atom.assert, + textEditors: atom.textEditors, + project: { + bufferForIdSync: (id) -> TextBuffer.deserialize(editor.buffer.serialize()) + } + }) expect(editor2.id).toBe editor.id expect(editor2.getBuffer().getPath()).toBe editor.getBuffer().getPath() diff --git a/spec/workspace-spec.coffee b/spec/workspace-spec.coffee index 153cc5dc3..8e4da1185 100644 --- a/spec/workspace-spec.coffee +++ b/spec/workspace-spec.coffee @@ -7,6 +7,7 @@ platform = require './spec-helper-platform' _ = require 'underscore-plus' fstream = require 'fstream' fs = require 'fs-plus' +AtomEnvironment = require '../src/atom-environment' describe "Workspace", -> [workspace, setDocumentEdited] = [] @@ -865,24 +866,35 @@ describe "Workspace", -> i = /test/; #FIXME """ - state = atom.workspace.serialize() - expect(state.packagesWithActiveGrammars).toEqual ['language-coffee-script', 'language-javascript', 'language-todo'] - - jsPackage = atom.packages.getLoadedPackage('language-javascript') - coffeePackage = atom.packages.getLoadedPackage('language-coffee-script') - spyOn(jsPackage, 'loadGrammarsSync') - spyOn(coffeePackage, 'loadGrammarsSync') - - workspace2 = new Workspace({ - config: atom.config, project: atom.project, packageManager: atom.packages, - notificationManager: atom.notifications, deserializerManager: atom.deserializers, - viewRegistry: atom.views, grammarRegistry: atom.grammars, - applicationDelegate: atom.applicationDelegate, assert: atom.assert.bind(atom), - textEditorRegistry: atom.textEditors + atom2 = new AtomEnvironment({ + applicationDelegate: atom.applicationDelegate, + window: document.createElement('div'), + document: Object.assign( + document.createElement('div'), + { + body: document.createElement('div'), + head: document.createElement('div'), + } + ) }) - workspace2.deserialize(state, atom.deserializers) - expect(jsPackage.loadGrammarsSync.callCount).toBe 1 - expect(coffeePackage.loadGrammarsSync.callCount).toBe 1 + + atom2.packages.loadPackage('language-javascript') + atom2.packages.loadPackage('language-coffee-script') + atom2.packages.loadPackage('language-todo') + atom2.project.deserialize(atom.project.serialize()) + atom2.workspace.deserialize(atom.workspace.serialize(), atom2.deserializers) + + expect(atom2.grammars.getGrammars().map((grammar) -> grammar.name).sort()).toEqual([ + 'CoffeeScript', + 'CoffeeScript (Literate)', + 'JavaScript', + 'Null Grammar', + 'Regular Expression Replacement (JavaScript)', + 'Regular Expressions (JavaScript)', + 'TODO' + ]) + + atom2.destroy() describe "document.title", -> describe "when there is no item open", -> @@ -971,18 +983,26 @@ describe "Workspace", -> it "updates the title to contain the project's path", -> document.title = null - workspace2 = new Workspace({ - config: atom.config, project: atom.project, packageManager: atom.packages, - notificationManager: atom.notifications, deserializerManager: atom.deserializers, - viewRegistry: atom.views, grammarRegistry: atom.grammars, - applicationDelegate: atom.applicationDelegate, assert: atom.assert.bind(atom), - textEditorRegistry: atom.textEditors + + atom2 = new AtomEnvironment({ + applicationDelegate: atom.applicationDelegate, + window: document.createElement('div'), + document: Object.assign( + document.createElement('div'), + { + body: document.createElement('div'), + head: document.createElement('div'), + } + ) }) - workspace2.deserialize(atom.workspace.serialize(), atom.deserializers) - item = workspace2.getActivePaneItem() + + atom2.project.deserialize(atom.project.serialize()) + atom2.workspace.deserialize(atom.workspace.serialize(), atom2.deserializers) + item = atom2.workspace.getActivePaneItem() pathEscaped = fs.tildify(escapeStringRegex(atom.project.getPaths()[0])) expect(document.title).toMatch ///^#{item.getLongTitle()}\ \u2014\ #{pathEscaped}/// - workspace2.destroy() + + atom2.destroy() describe "document edited status", -> [item1, item2] = [] diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 3133b5af8..dc4318bec 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -840,6 +840,8 @@ class AtomEnvironment extends Model error.metadata = callbackOrMetadata @emitter.emit 'did-fail-assertion', error + unless @isReleasedVersion() + throw error false diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 1f24fa252..8095632fd 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -387,7 +387,7 @@ class TextEditor extends Model softWrapHangingIndentLength: @displayLayer.softWrapHangingIndent @id, @softTabs, @softWrapped, @softWrapAtPreferredLineLength, - @preferredLineLength, @mini, @editorWidthInChars, @width, @largeFileMode, + @preferredLineLength, @mini, @editorWidthInChars, @width, @largeFileMode, @registered, @invisibles, @showInvisibles, @showIndentGuide, @autoHeight, @autoWidth }