mirror of
https://github.com/stablyai/orca.git
synced 2026-09-30 00:03:15 +00:00
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { resolveMobileBrowserAddressSync } from './mobile-browser-address-sync'
|
|
|
|
describe('resolveMobileBrowserAddressSync', () => {
|
|
it('syncs the tab URL when the input is not focused', () => {
|
|
const result = resolveMobileBrowserAddressSync(
|
|
{ focused: false, url: 'https://old.example/' },
|
|
{ focused: false, url: 'https://new.example/' }
|
|
)
|
|
|
|
expect(result).toEqual({
|
|
nextState: { focused: false, url: 'https://new.example/' },
|
|
shouldSyncValue: true
|
|
})
|
|
})
|
|
|
|
it('defers tab URL sync while the user is editing', () => {
|
|
const result = resolveMobileBrowserAddressSync(
|
|
{ focused: false, url: 'https://old.example/' },
|
|
{ focused: true, url: 'https://new.example/' }
|
|
)
|
|
|
|
expect(result).toEqual({
|
|
nextState: { focused: true, url: 'https://new.example/' },
|
|
shouldSyncValue: false
|
|
})
|
|
})
|
|
|
|
it('syncs the latest tab URL when editing ends', () => {
|
|
const result = resolveMobileBrowserAddressSync(
|
|
{ focused: true, url: 'https://new.example/' },
|
|
{ focused: false, url: 'https://new.example/' }
|
|
)
|
|
|
|
expect(result).toEqual({
|
|
nextState: { focused: false, url: 'https://new.example/' },
|
|
shouldSyncValue: true
|
|
})
|
|
})
|
|
|
|
it('preserves externally updated address text when focus and tab URL are unchanged', () => {
|
|
const previous = { focused: false, url: 'https://new.example/' }
|
|
const result = resolveMobileBrowserAddressSync(previous, {
|
|
focused: false,
|
|
url: 'https://new.example/'
|
|
})
|
|
|
|
expect(result).toEqual({
|
|
nextState: previous,
|
|
shouldSyncValue: false
|
|
})
|
|
})
|
|
})
|