Mailspring/internal_packages/account-sidebar/spec/account-sidebar-store-spec.coffee
Evan Morikawa 51602f69a5 refactor(env): new NylasEnv global
Converted all references of global atom to NylasEnv

Temporary rename atom.io

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.io/temporaryAtomIoReplacement/g'

atom.config to NylasEnv.config

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.config/NylasEnv.config/g'

atom.packages -> NylasEnv.packages

atom.commands -> NylasEnv.commands atom.getLoadSettings

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.commands/NylasEnv.commands/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getLoadSettings/NylasEnv.getLoadSettings/g'

More common atom methods

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.styles/NylasEnv.styles/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.emitError/NylasEnv.emitError/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inSpecMode/NylasEnv.inSpecMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inDevMode/NylasEnv.inDevMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getWindowType/NylasEnv.getWindowType/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.displayWindow/NylasEnv.displayWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.quit/NylasEnv.quit/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.close/NylasEnv.close/g'

More atom method changes

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.keymaps/NylasEnv.keymaps/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.hide/NylasEnv.hide/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getCurrentWindow/NylasEnv.getCurrentWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.menu/NylasEnv.menu/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getConfigDirPath/NylasEnv.getConfigDirPath/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isMainWindow/NylasEnv.isMainWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.finishUnload/NylasEnv.finishUnload/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isWorkWindow/NylasEnv.isWorkWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.showSaveDialog/NylasEnv.showSaveDialog/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.append/NylasEnv.append/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.confirm/NylasEnv.confirm/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.clipboard/NylasEnv.clipboard/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getVersion/NylasEnv.getVersion/g'

More atom renaming

Rename atom methods

More atom methods

Fix grunt config variable

Change atom.cmd to N1.cmd

Rename atom.coffee and atom.js to nylas-env.coffee nylas-env.js

Fix atom global reference in specs manually

Fix atom requires

Change engine from atom to nylas

got rid of global/nylas-env

rename to nylas-win-bootup

Fix onWindowPropsChanged to onWindowPropsReceived

fix nylas-workspace

atom-text-editor to nylas-theme-wrap

atom-text-editor -> nylas-theme-wrap

Replacing atom keyword

AtomWindow -> NylasWindow

Replace Atom -> N1

Rename atom items

nylas.asar -> atom.asar

Remove more atom references

Remove 6to5 references

Remove license exception for atom
2015-11-17 16:41:20 -08:00

255 lines
7 KiB
CoffeeScript

AccountSidebarStore = require '../lib/account-sidebar-store'
{Folder, WorkspaceStore, CategoryStore} = require 'nylas-exports'
describe "AccountSidebarStore", ->
describe "sections", ->
it "should return the correct output", ->
NylasEnv.testOrganizationUnit = 'folder'
spyOn(CategoryStore, 'getStandardCategories').andCallFake ->
return [
new Folder(displayName:'Inbox', clientId: '1', name: 'inbox')
new Folder(displayName:'Sent', clientId: '3', name: 'sent')
new Folder(displayName:'Important', clientId: '4', name: 'important')
]
spyOn(CategoryStore, 'getUserCategories').andCallFake ->
return [
new Folder(displayName:'A', clientId: 'a')
new Folder(displayName:'B', clientId: 'b')
new Folder(displayName:'A/B', clientId: 'a+b')
new Folder(displayName:'A.D', clientId: 'a+d')
new Folder(displayName:'A\\E', clientId: 'a+e')
new Folder(displayName:'B/C', clientId: 'b+c')
new Folder(displayName:'A/B/C', clientId: 'a+b+c')
new Folder(displayName:'A/B-C', clientId: 'a+b-c')
]
spyOn(WorkspaceStore, 'sidebarItems').andCallFake ->
return [
new WorkspaceStore.SidebarItem
component: {}
sheet: 'stub'
id: 'Drafts'
name: 'Drafts'
]
expected = [
{
label: 'Mailboxes',
items: [
{
id: '1',
name: 'Inbox',
mailViewFilter: {
name: 'Inbox',
category: {
client_id: '1',
name: 'inbox',
display_name: 'Inbox',
id: '1'
},
iconName: 'inbox.png'
},
children: [
]
},
{
id: 'starred',
name: 'Starred',
mailViewFilter: {
name: 'Starred',
iconName: 'starred.png'
},
children: [
]
},
{
id: '3',
name: 'Sent',
mailViewFilter: {
name: 'Sent',
category: {
client_id: '3',
name: 'sent',
display_name: 'Sent',
id: '3'
},
iconName: 'sent.png'
},
children: [
]
},
{
id: '4',
name: 'Important',
mailViewFilter: {
name: 'Important',
category: {
client_id: '4',
name: 'important',
display_name: 'Important',
id: '4'
},
iconName: 'important.png'
},
children: [
]
},
{
id: 'Drafts',
component: {
},
name: 'Drafts',
sheet: 'stub',
children: [
]
}
]
},
{
label: 'Folders',
items: [
{
id: 'a',
name: 'A',
mailViewFilter: {
name: 'A',
category: {
client_id: 'a',
display_name: 'A',
id: 'a'
},
iconName: 'folder.png'
},
children: [
{
id: 'a+b',
name: 'B',
mailViewFilter: {
name: 'A/B',
category: {
client_id: 'a+b',
display_name: 'A/B',
id: 'a+b'
},
iconName: 'folder.png'
},
children: [
{
id: 'a+b+c',
name: 'C',
mailViewFilter: {
name: 'A/B/C',
category: {
client_id: 'a+b+c',
display_name: 'A/B/C',
id: 'a+b+c'
},
iconName: 'folder.png'
},
children: [
]
}
]
},
{
id: 'a+d',
name: 'D',
mailViewFilter: {
name: 'A.D',
category: {
client_id: 'a+d',
display_name: 'A.D',
id: 'a+d'
},
iconName: 'folder.png'
},
children: [
]
},
{
id: 'a+e',
name: 'E',
mailViewFilter: {
name: 'A\\E',
category: {
client_id: 'a+e',
display_name: 'A\\E',
id: 'a+e'
},
iconName: 'folder.png'
},
children: [
]
},
{
id: 'a+b-c',
name: 'B-C',
mailViewFilter: {
name: 'A/B-C',
category: {
client_id: 'a+b-c',
display_name: 'A/B-C',
id: 'a+b-c'
},
iconName: 'folder.png'
},
children: [
]
}
]
},
{
id: 'b',
name: 'B',
mailViewFilter: {
name: 'B',
category: {
client_id: 'b',
display_name: 'B',
id: 'b'
},
iconName: 'folder.png'
},
children: [
{
id: 'b+c',
name: 'C',
mailViewFilter: {
name: 'B/C',
category: {
client_id: 'b+c',
display_name: 'B/C',
id: 'b+c'
},
iconName: 'folder.png'
},
children: [
]
}
]
}
]
}
]
AccountSidebarStore._refreshSections()
# Converting to JSON removes keys whose values are `undefined`,
# makes the output smaller and easier to visually compare.
output = JSON.parse(JSON.stringify(AccountSidebarStore.sections()))
expect(output).toEqual(expected)