Construct test instance of MenuManager in spec

Esse commit está contido em:
Nathan Sobo
2014-09-29 11:45:01 -06:00
commit f6f891fa14
+23 -18
Ver Arquivo
@@ -1,43 +1,48 @@
MenuManager = require '../src/menu-manager'
describe "MenuManager", -> describe "MenuManager", ->
menu = null
beforeEach ->
menu = new MenuManager(resourcePath: atom.getLoadSettings().resourcePath)
describe "::add(items)", -> describe "::add(items)", ->
it "can add new menus that can be removed with the returned disposable", -> it "can add new menus that can be removed with the returned disposable", ->
originalItemCount = atom.menu.template.length disposable = menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}]
disposable = atom.menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}] expect(menu.template).toEqual [{label: "A", submenu: [{label: "B", command: "b"}]}]
expect(atom.menu.template[originalItemCount]).toEqual {label: "A", submenu: [{label: "B", command: "b"}]}
disposable.dispose() disposable.dispose()
expect(atom.menu.template.length).toBe originalItemCount expect(menu.template).toEqual []
it "can add submenu items to existing menus that can be removed with the returned disposable", -> it "can add submenu items to existing menus that can be removed with the returned disposable", ->
originalItemCount = atom.menu.template.length disposable1 = menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}]
disposable1 = atom.menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}] disposable2 = menu.add [{label: "A", submenu: [{label: "C", submenu: [{label: "D", command: 'd'}]}]}]
disposable2 = atom.menu.add [{label: "A", submenu: [{label: "C", submenu: [{label: "D", command: 'd'}]}]}] disposable3 = menu.add [{label: "A", submenu: [{label: "C", submenu: [{label: "E", command: 'e'}]}]}]
disposable3 = atom.menu.add [{label: "A", submenu: [{label: "C", submenu: [{label: "E", command: 'e'}]}]}]
expect(atom.menu.template[originalItemCount]).toEqual { expect(menu.template).toEqual [{
label: "A", label: "A",
submenu: [ submenu: [
{label: "B", command: "b"}, {label: "B", command: "b"},
{label: "C", submenu: [{label: 'D', command: 'd'}, {label: 'E', command: 'e'}]} {label: "C", submenu: [{label: 'D', command: 'd'}, {label: 'E', command: 'e'}]}
] ]
} }]
disposable3.dispose() disposable3.dispose()
expect(atom.menu.template[originalItemCount]).toEqual { expect(menu.template).toEqual [{
label: "A", label: "A",
submenu: [ submenu: [
{label: "B", command: "b"}, {label: "B", command: "b"},
{label: "C", submenu: [{label: 'D', command: 'd'}]} {label: "C", submenu: [{label: 'D', command: 'd'}]}
] ]
} }]
disposable2.dispose() disposable2.dispose()
expect(atom.menu.template[originalItemCount]).toEqual {label: "A", submenu: [{label: "B", command: "b"}]} expect(menu.template).toEqual [{label: "A", submenu: [{label: "B", command: "b"}]}]
disposable1.dispose() disposable1.dispose()
expect(atom.menu.template.length).toBe originalItemCount expect(menu.template).toEqual []
it "does not add duplicate labels to the same menu", -> it "does not add duplicate labels to the same menu", ->
originalItemCount = atom.menu.template.length originalItemCount = menu.template.length
atom.menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}] menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}]
atom.menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}] menu.add [{label: "A", submenu: [{label: "B", command: "b"}]}]
expect(atom.menu.template[originalItemCount]).toEqual {label: "A", submenu: [{label: "B", command: "b"}]} expect(menu.template[originalItemCount]).toEqual {label: "A", submenu: [{label: "B", command: "b"}]}