Skip to content

Commit

Permalink
fix: 🐛 tracker snippets url
Browse files Browse the repository at this point in the history
playwright tests for moon tracker
  • Loading branch information
karlosmid committed Feb 11, 2025
1 parent 90c1139 commit fa47052
Show file tree
Hide file tree
Showing 7 changed files with 144 additions and 2 deletions.
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="[email protected]" 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="[email protected]"/>
<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="[email protected]"/>
<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="[email protected]"/>
<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="[email protected]" />
<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' })
});

});

0 comments on commit fa47052

Please sign in to comment.