mirror of
https://github.com/langgenius/dify.git
synced 2026-09-08 02:43:49 +08:00
Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: fatelei <fatelei@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: CodingOnStar <hanxujiang@dify.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: 姜涵煦 <hanxujiang@jianghanxudeMacBook-Pro-2.local> Co-authored-by: L1nSn0w <l1nsn0w@qq.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
// @vitest-environment happy-dom
|
|
|
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
import {
|
|
markMarketplaceSiteFilter,
|
|
markMarketplaceSiteSearch,
|
|
trackMarketplaceSiteCardClick,
|
|
trackMarketplaceSiteEvent,
|
|
} from '../marketplace-site-track'
|
|
|
|
describe('marketplace site track bridge', () => {
|
|
afterEach(() => {
|
|
document.body.removeAttribute('data-is-marketplace')
|
|
delete window.__marketplaceTracking__
|
|
})
|
|
|
|
it('does not forward events outside the standalone marketplace', () => {
|
|
const track = vi.fn()
|
|
window.__marketplaceTracking__ = { track } as never
|
|
|
|
trackMarketplaceSiteEvent('marketplace_card_click', { click_target: 'card' })
|
|
|
|
expect(track).not.toHaveBeenCalled()
|
|
})
|
|
|
|
it('forwards events and card clicks on the standalone marketplace', () => {
|
|
const track = vi.fn()
|
|
const rememberReferrer = vi.fn()
|
|
document.body.setAttribute('data-is-marketplace', '')
|
|
window.__marketplaceTracking__ = {
|
|
track,
|
|
rememberReferrer,
|
|
markSearch: vi.fn(),
|
|
flushSearch: vi.fn(),
|
|
markFilter: vi.fn(),
|
|
flushFilter: vi.fn(),
|
|
}
|
|
|
|
trackMarketplaceSiteEvent('marketplace_creator_partner_click', {
|
|
click_target: 'creator_center',
|
|
})
|
|
trackMarketplaceSiteCardClick({
|
|
itemId: 'org/name',
|
|
itemType: 'plugin',
|
|
itemName: 'OpenAI',
|
|
section: 'partners',
|
|
})
|
|
markMarketplaceSiteSearch('openai')
|
|
markMarketplaceSiteFilter({
|
|
filter_type: 'type_tab',
|
|
selection_mode: 'single',
|
|
filter_value: 'tool',
|
|
selected_values: ['tool'],
|
|
})
|
|
|
|
expect(track).toHaveBeenNthCalledWith(1, 'marketplace_creator_partner_click', {
|
|
click_target: 'creator_center',
|
|
})
|
|
expect(rememberReferrer).toHaveBeenCalledWith('org/name', 'list')
|
|
expect(track).toHaveBeenNthCalledWith(2, 'marketplace_card_click', {
|
|
click_target: 'card',
|
|
item_id: 'org/name',
|
|
item_type: 'plugin',
|
|
item_name: 'OpenAI',
|
|
section: 'partners',
|
|
})
|
|
})
|
|
})
|