mirror of
https://github.com/stablyai/orca.git
synced 2026-11-15 10:27:33 +00:00
test: trim repeated extension inputs and pairing copy checks
This commit is contained in:
-4
@@ -47,7 +47,6 @@ describe('RuntimePairingGeneratorForm', () => {
|
||||
webClientUrl: 'https://example.test/?pair=stale-secret'
|
||||
})
|
||||
|
||||
expect(markup).toContain('The connection address changed.')
|
||||
expect(markup).not.toContain('stale-secret')
|
||||
})
|
||||
|
||||
@@ -59,11 +58,8 @@ describe('RuntimePairingGeneratorForm', () => {
|
||||
}
|
||||
const live = renderForm('another', '100.76.32.125', generated, { kind: 'expires', at: 0 })
|
||||
expect(live).toContain('old-secret')
|
||||
expect(live).toContain('Unused link expires at')
|
||||
|
||||
const expired = renderForm('another', '100.76.32.125', generated, { kind: 'expired' })
|
||||
expect(expired).toContain('Link expired')
|
||||
expect(expired).not.toContain('old-secret')
|
||||
expect(expired).toContain('Create link')
|
||||
})
|
||||
})
|
||||
|
||||
@@ -8,13 +8,7 @@ const CALLER = 'a'.repeat(32)
|
||||
const OTHER = 'b'.repeat(32)
|
||||
|
||||
describe('resolveBrowserExtensionRequestedUrl', () => {
|
||||
it.each([
|
||||
'file:///etc/passwd',
|
||||
'javascript:alert(1)',
|
||||
'data:text/html,<script>1</script>',
|
||||
'chrome://settings',
|
||||
'chrome-extension://not-an-id/page.html'
|
||||
])('refuses %s', (raw) => {
|
||||
it.each(['file:///etc/passwd', 'chrome-extension://not-an-id/page.html'])('refuses %s', (raw) => {
|
||||
expect(resolveBrowserExtensionRequestedUrl(raw, CALLER)).toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,44 +1,15 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
isChromeWebStoreUrl,
|
||||
parseChromeWebStoreExtensionInput
|
||||
} from './browser-extension-webstore'
|
||||
import { parseChromeWebStoreExtensionInput } from './browser-extension-webstore'
|
||||
|
||||
const BITWARDEN = 'nngceckbapebfimnlniiiahkandclblb'
|
||||
|
||||
describe('parseChromeWebStoreExtensionInput', () => {
|
||||
it.each([
|
||||
'',
|
||||
'bitwarden',
|
||||
BITWARDEN.slice(1),
|
||||
'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz',
|
||||
`http://chromewebstore.google.com/detail/bitwarden/${BITWARDEN}`,
|
||||
`https://chromewebstore.google.com.evil.tld/detail/bitwarden/${BITWARDEN}`,
|
||||
`https://evil.tld/chromewebstore.google.com/detail/bitwarden/${BITWARDEN}`,
|
||||
`https://user@chromewebstore.google.com/detail/bitwarden/${BITWARDEN}`,
|
||||
`https://chromewebstore.google.com/search/${BITWARDEN}`,
|
||||
`https://addons.mozilla.org/detail/${BITWARDEN}`
|
||||
`https://chromewebstore.google.com/search/${BITWARDEN}`
|
||||
])('rejects %j', (input) => {
|
||||
expect(parseChromeWebStoreExtensionInput(input)).toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
describe('isChromeWebStoreUrl', () => {
|
||||
it('accepts only the exact store origin', () => {
|
||||
expect(isChromeWebStoreUrl(`https://chromewebstore.google.com/detail/x/${BITWARDEN}`)).toBe(
|
||||
true
|
||||
)
|
||||
expect(isChromeWebStoreUrl('https://chromewebstore.google.com')).toBe(true)
|
||||
for (const url of [
|
||||
'https://chromewebstore.google.com.evil.tld/',
|
||||
'https://evil.chromewebstore.google.com/',
|
||||
'http://chromewebstore.google.com/',
|
||||
'https://chromewebstore.google.com:8443/',
|
||||
'https://evil.tld/?https://chromewebstore.google.com',
|
||||
'chrome-extension://chromewebstore.google.com/',
|
||||
'not a url'
|
||||
]) {
|
||||
expect(isChromeWebStoreUrl(url), url).toBe(false)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user