Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion tracker/src/plausible.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
elements.forEach(element => {
const attributeValue = element.getAttribute(attribute);
const eventValue = `${attribute}-${attributeValue}`;

trigger('phx-event', {
props: {
event: attribute,
Expand Down
20 changes: 20 additions & 0 deletions tracker/test/fixtures/live-view-moon-components-2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Plausible Playwright LiveView tests</title>
<script>window.liveSocket = {socket: {}}</script>
<script>window.liveSocket = {socket: {}}</script>
<script defer src="/tracker/js/plausible.live-view.local.manual.js"></script>
</head>
<body>
LiveView-related tests
<form id="main-form" onsubmit="event.preventDefault();">
<input type="text" name="user[name]" value="name"/>
<input type="email" name="user[email]" value="user@email.com" data-moon-elixir-assets-id="main-form-elixir"/>
<input type="submit" id="main-form-btn" data-moon-icons-id="main-form-icon"/>
</form>
</body>
</html>
20 changes: 20 additions & 0 deletions tracker/test/fixtures/live-view-moon-components-3.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Plausible Playwright LiveView tests</title>
<script>window.liveSocket = {socket: {}}</script>
<script>window.liveSocket = {socket: {}}</script>
<script defer src="/tracker/js/plausible.live-view.local.manual.js"></script>
</head>
<body>
LiveView-related tests
<form id="main-form" onsubmit="event.preventDefault();">
<input type="text" name="user[name]" value="name"/>
<input type="email" name="user[email]" value="user@email.com"/>
<input type="submit" id="main-form-btn" data-moon-icons-id="main-form-icon"/>
</form>
</body>
</html>
20 changes: 20 additions & 0 deletions tracker/test/fixtures/live-view-moon-components-4.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Plausible Playwright LiveView tests</title>
<script>window.liveSocket = {socket: {}}</script>
<script>window.liveSocket = {socket: {}}</script>
<script defer src="/tracker/js/plausible.live-view.local.manual.js"></script>
</head>
<body>
LiveView-related tests
<form id="main-form" onsubmit="event.preventDefault();">
<input type="text" name="user[name]" value="name" data-moon-icons-react-id="main-form-react"/>
<input type="email" name="user[email]" value="user@email.com"/>
<input type="submit" id="main-form-btn"/>
</form>
</body>
</html>
20 changes: 20 additions & 0 deletions tracker/test/fixtures/live-view-moon-components.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Plausible Playwright LiveView tests</title>
<script>window.liveSocket = {socket: {}}</script>
<script>window.liveSocket = {socket: {}}</script>
<script defer src="/tracker/js/plausible.live-view.local.manual.js"></script>
</head>
<body>
LiveView-related tests
<form id="main-form" onsubmit="event.preventDefault();"data-moon-react-assets-id="main-form">
<input type="text" name="user[name]" value="name" data-moon-icons-react-id="main-form-react"/>
<input type="email" name="user[email]" value="user@email.com"/>
<input type="submit" id="main-form-btn"/>
</form>
</body>
</html>
2 changes: 1 addition & 1 deletion tracker/test/fixtures/live-view.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<body>
LiveView-related tests
<form id="main-form" onsubmit="event.preventDefault();">
<input type="text" name="user[name]" value="name" />
<input type="text" name="user[name]" value="name"/>
<input type="email" name="user[email]" value="user@email.com" />
<input type="submit" id="main-form-btn" />
</form>
Expand Down
63 changes: 63 additions & 0 deletions tracker/test/live-view.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,68 @@ test.describe('script.live-view.js tracking', () => {
expect(request.postDataJSON().u).toEqual("/navigate")
expectCustomEvent(request, 'pageview', {})
});

});

test.describe('script.live-view.js moon ds tracking', () => {
let plausibleRequestMock;

test.beforeEach(async ({ page }) => {
plausibleRequestMock = mockRequest(page, '/api/event')
await page.goto('/live-view-moon-components.html');
});

test('Sends data-moon-react-assets-id', async ({ page }) => {
await page.evaluate(() => window.dispatchEvent(new CustomEvent("data-moon-react-assets-id", { value: "main-form" })))
const request = await plausibleRequestMock;
expectCustomEvent(request, 'phx-event', { event: 'data-moon-react-assets-id', value: 'main-form' })
});

});

test.describe('script.live-view.js moon icons ds tracking', () => {
let plausibleRequestMock;

test.beforeEach(async ({ page }) => {
plausibleRequestMock = mockRequest(page, '/api/event')
await page.goto('/live-view-moon-components-4.html');
});

test('Sends data-moon-icons-react-id', async ({ page }) => {
await page.evaluate(() => window.dispatchEvent(new CustomEvent("data-moon-icons-react-id", { value: "main-form-react" })))
const request = await plausibleRequestMock;
expectCustomEvent(request, 'phx-event', { event: 'data-moon-icons-react-id', value: 'main-form-react' })
});

});

test.describe('script.live-view.js moon ds elixir tracking', () => {
let plausibleRequestMock;

test.beforeEach(async ({ page }) => {
plausibleRequestMock = mockRequest(page, '/api/event')
await page.goto('/live-view-moon-components-2.html');
});

test('Sends data-moon-elixir-assets-id', async ({ page }) => {
await page.evaluate(() => window.dispatchEvent(new CustomEvent("data-moon-elixir-assets-id", { value: "main-form-elixir" })))
const request = await plausibleRequestMock;
expectCustomEvent(request, 'phx-event', { event: 'data-moon-elixir-assets-id', value: 'main-form-elixir' })
});
});

test.describe('script.live-view.js moon ds icons tracking', () => {
let plausibleRequestMock;

test.beforeEach(async ({ page }) => {
plausibleRequestMock = mockRequest(page, '/api/event')
await page.goto('/live-view-moon-components-3.html');
});

test('Sends data-moon-icons-id', async ({ page }) => {
await page.evaluate(() => window.dispatchEvent(new CustomEvent("data-moon-icons-id", { value: "main-form-icon" })))
const request = await plausibleRequestMock;
expectCustomEvent(request, 'phx-event', { event: 'data-moon-icons-id', value: 'main-form-icon' })
});

});
Loading