mainmenu.spec.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // Copyright (c) Jupyter Development Team.
  2. // Distributed under the terms of the Modified BSD License.
  3. import {
  4. EditMenu,
  5. FileMenu,
  6. HelpMenu,
  7. KernelMenu,
  8. MainMenu,
  9. RunMenu,
  10. SettingsMenu,
  11. TabsMenu,
  12. ViewMenu
  13. } from '@jupyterlab/mainmenu';
  14. import { ArrayExt, find } from '@lumino/algorithm';
  15. import { CommandRegistry } from '@lumino/commands';
  16. import { Menu } from '@lumino/widgets';
  17. describe('@jupyterlab/mainmenu', () => {
  18. describe('MainMenu', () => {
  19. let commands: CommandRegistry;
  20. let mainMenu: MainMenu;
  21. beforeAll(() => {
  22. commands = new CommandRegistry();
  23. });
  24. beforeEach(() => {
  25. mainMenu = new MainMenu(commands);
  26. });
  27. afterEach(() => {
  28. mainMenu.dispose();
  29. });
  30. describe('#constructor()', () => {
  31. it('should construct a new main menu', () => {
  32. const menu = new MainMenu(new CommandRegistry());
  33. expect(menu).toBeInstanceOf(MainMenu);
  34. });
  35. });
  36. describe('#addMenu()', () => {
  37. it('should add a new menu', () => {
  38. const menu = new Menu({ commands });
  39. mainMenu.addMenu(menu);
  40. expect(find(mainMenu.menus, m => menu === m) !== undefined).toBe(true);
  41. });
  42. it('should take a rank as an option', () => {
  43. const menu1 = new Menu({ commands });
  44. const menu2 = new Menu({ commands });
  45. mainMenu.addMenu(menu1, { rank: 300 });
  46. mainMenu.addMenu(menu2, { rank: 200 });
  47. expect(
  48. ArrayExt.firstIndexOf(mainMenu.menus, menu1) >
  49. ArrayExt.firstIndexOf(mainMenu.menus, menu2)
  50. ).toBe(true);
  51. });
  52. });
  53. describe('#fileMenu', () => {
  54. it('should be a FileMenu', () => {
  55. expect(mainMenu.fileMenu).toBeInstanceOf(FileMenu);
  56. });
  57. it('has a default rank of 1', () => {
  58. expect(mainMenu.fileMenu.rank).toEqual(1);
  59. });
  60. });
  61. describe('#editMenu', () => {
  62. it('should be a EditMenu', () => {
  63. expect(mainMenu.editMenu).toBeInstanceOf(EditMenu);
  64. });
  65. it('has a default rank of 2', () => {
  66. expect(mainMenu.editMenu.rank).toEqual(2);
  67. });
  68. });
  69. describe('#viewMenu', () => {
  70. it('should be a ViewMenu', () => {
  71. expect(mainMenu.viewMenu).toBeInstanceOf(ViewMenu);
  72. });
  73. it('has a default rank of 3', () => {
  74. expect(mainMenu.viewMenu.rank).toEqual(3);
  75. });
  76. });
  77. describe('#runMenu', () => {
  78. it('should be a RunMenu', () => {
  79. expect(mainMenu.runMenu).toBeInstanceOf(RunMenu);
  80. });
  81. it('has a default rank of 4', () => {
  82. expect(mainMenu.runMenu.rank).toEqual(4);
  83. });
  84. });
  85. describe('#kernelMenu', () => {
  86. it('should be a KernelMenu', () => {
  87. expect(mainMenu.kernelMenu).toBeInstanceOf(KernelMenu);
  88. });
  89. it('has a default rank of 5', () => {
  90. expect(mainMenu.kernelMenu.rank).toEqual(5);
  91. });
  92. });
  93. describe('#tabsMenu', () => {
  94. it('should be a TabsMenu', () => {
  95. expect(mainMenu.tabsMenu).toBeInstanceOf(TabsMenu);
  96. });
  97. it('has a default rank of 500', () => {
  98. expect(mainMenu.tabsMenu.rank).toEqual(500);
  99. });
  100. });
  101. describe('#settingsMenu', () => {
  102. it('should be a SettingsMenu', () => {
  103. expect(mainMenu.settingsMenu).toBeInstanceOf(SettingsMenu);
  104. });
  105. it('has a default rank of 999', () => {
  106. expect(mainMenu.settingsMenu.rank).toEqual(999);
  107. });
  108. });
  109. describe('#helpMenu', () => {
  110. it('should be a HelpMenu', () => {
  111. expect(mainMenu.helpMenu).toBeInstanceOf(HelpMenu);
  112. });
  113. it('has a default rank of 1000', () => {
  114. expect(mainMenu.helpMenu.rank).toEqual(1000);
  115. });
  116. });
  117. });
  118. });