api-view-spec.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { expect } from 'chai';
  2. import { closeWindow } from './lib/window-helpers';
  3. import { BaseWindow, View } from 'electron/main';
  4. describe('View', () => {
  5. let w: BaseWindow;
  6. afterEach(async () => {
  7. await closeWindow(w as any);
  8. w = null as unknown as BaseWindow;
  9. });
  10. it('can be used as content view', () => {
  11. w = new BaseWindow({ show: false });
  12. const v = new View();
  13. w.setContentView(v);
  14. expect(w.contentView).to.equal(v);
  15. });
  16. it('will throw when added as a child to itself', () => {
  17. w = new BaseWindow({ show: false });
  18. expect(() => {
  19. w.contentView.addChildView(w.contentView);
  20. }).to.throw('A view cannot be added as its own child');
  21. });
  22. it('does not crash when attempting to add a child multiple times', () => {
  23. w = new BaseWindow({ show: false });
  24. const cv = new View();
  25. w.setContentView(cv);
  26. const v = new View();
  27. w.contentView.addChildView(v);
  28. w.contentView.addChildView(v);
  29. w.contentView.addChildView(v);
  30. expect(w.contentView.children).to.have.lengthOf(1);
  31. });
  32. it('correctly reorders children', () => {
  33. w = new BaseWindow({ show: false });
  34. const cv = new View();
  35. w.setContentView(cv);
  36. const v1 = new View();
  37. const v2 = new View();
  38. const v3 = new View();
  39. w.contentView.addChildView(v1);
  40. w.contentView.addChildView(v2);
  41. w.contentView.addChildView(v3);
  42. expect(w.contentView.children).to.deep.equal([v1, v2, v3]);
  43. w.contentView.addChildView(v1);
  44. w.contentView.addChildView(v2);
  45. expect(w.contentView.children).to.deep.equal([v3, v1, v2]);
  46. });
  47. it('allows setting various border radius values', () => {
  48. w = new BaseWindow({ show: false });
  49. const v = new View();
  50. w.setContentView(v);
  51. v.setBorderRadius(10);
  52. v.setBorderRadius(0);
  53. v.setBorderRadius(-10);
  54. v.setBorderRadius(9999999);
  55. v.setBorderRadius(-9999999);
  56. });
  57. });