preload-auth.test.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { readFileSync } from 'fs'
  2. import { resolve } from 'path'
  3. import { describe, expect, it } from 'vitest'
  4. describe('desktop preload auth', () => {
  5. it('does not auto-login with default credentials', () => {
  6. const source = readFileSync(resolve('packages/desktop/src/preload/index.ts'), 'utf-8')
  7. expect(source).not.toContain('/api/auth/login')
  8. expect(source).not.toContain('DEFAULT_PASSWORD')
  9. expect(source).not.toContain('DEFAULT_USERNAME')
  10. expect(source).not.toContain('autoLogin')
  11. })
  12. it('exposes the native Runtime directory picker through a dedicated IPC channel', () => {
  13. const preloadSource = readFileSync(resolve('packages/desktop/src/preload/index.ts'), 'utf-8')
  14. const mainSource = readFileSync(resolve('packages/desktop/src/main/index.ts'), 'utf-8')
  15. expect(preloadSource).toContain("ipcRenderer.invoke('hermes-desktop:select-runtime-directory'")
  16. expect(mainSource).toContain("ipcMain.handle('hermes-desktop:select-runtime-directory'")
  17. expect(mainSource).toContain("properties: ['openDirectory']")
  18. })
  19. it('exposes browser profile root selection through a dedicated IPC channel', () => {
  20. const preloadSource = readFileSync(resolve('packages/desktop/src/preload/index.ts'), 'utf-8')
  21. const mainSource = readFileSync(resolve('packages/desktop/src/main/index.ts'), 'utf-8')
  22. expect(preloadSource).toContain("ipcRenderer.invoke('hermes-desktop:browser-choose-profile-root-directory'")
  23. expect(mainSource).toContain("ipcMain.handle('hermes-desktop:browser-choose-profile-root-directory'")
  24. expect(mainSource).not.toContain("ipcMain.handle('hermes-desktop:browser-choose-directory'")
  25. })
  26. it('exposes cancellation for active browser downloads', () => {
  27. const preloadSource = readFileSync(resolve('packages/desktop/src/preload/index.ts'), 'utf-8')
  28. const mainSource = readFileSync(resolve('packages/desktop/src/main/index.ts'), 'utf-8')
  29. expect(preloadSource).toContain("ipcRenderer.invoke('hermes-desktop:browser-cancel-download'")
  30. expect(mainSource).toContain("ipcMain.handle('hermes-desktop:browser-cancel-download'")
  31. })
  32. })
粤ICP备19079148号