@saasquatch/mint-components 1.14.7 → 1.14.8-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@saasquatch/mint-components",
3
3
  "title": "Mint Components",
4
- "version": "1.14.7",
4
+ "version": "1.14.8-1",
5
5
  "description": "A minimal design library with components for referral and loyalty experiences. Built with Shoelace components by Saasquatch.",
6
6
  "icon": "https://res.cloudinary.com/saasquatch/image/upload/v1652219900/squatch-assets/For_Mint.svg",
7
7
  "raisins": "docs/raisins.json",
@@ -1,168 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- function statFunctions(page) {
3
- return {
4
- expectElement: async (selector) => { var _a;
5
- // convert to string because jest pretty printing the object causes errors
6
- return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
7
- dontExpectElement: async (selector) => { var _a; return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
8
- hasStat: async (stat) => {
9
- expect(stat.innerHTML).not.toEqual("!!!");
10
- },
11
- hasInvalidStat: async (stat) => {
12
- expect(stat.innerHTML).toEqual("!!!");
13
- },
14
- };
15
- }
16
- // <script>
17
- // window.widgetIdent = {
18
- // tenantAlias: "test_a7yoz8854cf6x",
19
- // appDomain: "https://staging.referralsaasquatch.com",
20
- // token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6Im55bmVsbGllIiwiaWQiOiJueW5lbGxpZSJ9fQ.3KV974VPLgk4tD8LQfJTi4IPkKCmnaB8w48HzVJYDuI",
21
- // userId: "nynellie",
22
- // accountId: "nynellie",
23
- // programId: "ny-post-referrals",
24
- // }
25
- // </script>
26
- function getHTML(stat) {
27
- return /*html*/ `
28
- <div>
29
- ${stat}
30
- </div>
31
- `;
32
- }
33
- const statTypes = [
34
- "/referralsCount",
35
- "/referralsCount/converted",
36
- "/referralsCount/started",
37
- "/referralsMonth",
38
- "/referralsWeek",
39
- "/rewardsCount",
40
- "/rewardsCount/global",
41
- "/rewardsCountFiltered",
42
- "/rewardsCountFiltered/global",
43
- "/rewardsCountFiltered/INTEGRATION",
44
- "/rewardsCountFiltered/INTEGRATION/global",
45
- "/rewardsCountFiltered/PCT_DISCOUNT",
46
- "/rewardsCountFiltered/PCT_DISCOUNT/global",
47
- "/rewardsCountFiltered/PCT_DISCOUNT/PENDING",
48
- "/rewardsCountFiltered/PCT_DISCOUNT/AVAILABLE",
49
- "/rewardsCountFiltered/PCT_DISCOUNT/CANCELLED",
50
- "/rewardsCountFiltered/PCT_DISCOUNT/PENDING/global",
51
- "/rewardsCountFiltered/CREDIT",
52
- "/rewardsCountFiltered/CREDIT/global",
53
- "/rewardsCountFiltered/CREDIT/COFFEE",
54
- "/rewardsCountFiltered/CREDIT/COFFEE/global",
55
- "/rewardsCountFiltered/CREDIT/COFFEE/PENDING/global",
56
- "/rewardsCountFiltered/CREDIT/COFFEE/AVAILABLE/global",
57
- "/rewardsCountFiltered/CREDIT/CASH%2FUSD",
58
- "/rewardsCountFiltered/CREDIT/CASH%2FUSD/global",
59
- "/rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING",
60
- "/rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING/global",
61
- "/integrationRewardsCountFiltered",
62
- "/integrationRewardsCountFiltered/global",
63
- "/integrationRewardsCountFiltered/PENDING/global",
64
- "/integrationRewardsCountFiltered/AVAILABLE/global",
65
- "/rewardsMonth",
66
- "/rewardsMonth/global",
67
- "/rewardsWeek",
68
- "/rewardsWeek/global",
69
- "/rewardsAssigned/CREDIT/COFFEE",
70
- "/rewardsAssigned/CREDIT/COFFEE/global",
71
- "/rewardsAssigned/CREDIT/CASH%2FUSD",
72
- "/rewardsAssigned/CREDIT/CASH%2FUSD/global",
73
- "/rewardsRedeemed/CREDIT/COFFEE",
74
- "/rewardsRedeemed/CREDIT/CASH%2FUSD",
75
- "/rewardsRedeemed/CREDIT/COFFEE/global",
76
- "/rewardsRedeemed/CREDIT/CASH%2FUSD/global",
77
- "/rewardsAvailable/CREDIT/COFFEE",
78
- "/rewardsAvailable/CREDIT/COFFEE/global",
79
- "/rewardsAvailable/CREDIT/CASH%2FUSD",
80
- "/rewardsAvailable/CREDIT/CASH%2FUSD/global",
81
- "/rewardBalance/CREDIT/COFFEE",
82
- "/rewardBalance/CREDIT/CASH/USD",
83
- "/rewardBalance/CREDIT/COFFEE/global",
84
- "/rewardBalance/CREDIT/COFFEE/prettyValue",
85
- "/rewardBalance/CREDIT/COFFEE/value",
86
- "/rewardBalance/CREDIT/COFFEE/prettyValue/global",
87
- "/rewardBalance/CREDIT/COFFEE/value/global",
88
- "/rewardBalance/CREDIT/CASH%2FUSD",
89
- "/rewardBalance/CREDIT/CASH%2FUSD/global",
90
- "/rewardBalance/CREDIT/CASH%2FUSD/prettyValue",
91
- "/rewardBalance/CREDIT/CASH%2FUSD/value",
92
- "/rewardBalance/CREDIT/CASH%2FUSD/prettyValue/global",
93
- "/rewardBalance/CREDIT/CASH%2FUSD/value/global",
94
- "/programGoals/count/Paid-Member-Goal%2Freferrals",
95
- "/programGoals/conversionCount/Paid-Member-Goal%2Freferrals",
96
- ];
97
- describe("sqm-big-stat", () => {
98
- statTypes.map((statType) => {
99
- return test(statType, async () => {
100
- const html = getHTML(`<sqm-big-stat stat-type="${statType}"></sqm-big-stat>`);
101
- const page = await newE2EPage();
102
- const { expectElement, hasStat } = statFunctions(page);
103
- await page.setContent(html);
104
- await page.waitForChanges();
105
- await expectElement("sqm-big-stat");
106
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
107
- hasStat(stat);
108
- page.close();
109
- });
110
- });
111
- test("No props returns !!!", async () => {
112
- const html = getHTML(`<sqm-big-stat></sqm-big-stat>`);
113
- const page = await newE2EPage();
114
- const { expectElement, hasInvalidStat } = statFunctions(page);
115
- await page.setContent(html);
116
- await page.waitForChanges();
117
- await expectElement("sqm-big-stat");
118
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
119
- hasInvalidStat(stat);
120
- page.close();
121
- });
122
- test("/garbage/props", async () => {
123
- const html = getHTML(`<sqm-big-stat stat-type="/garbage/props"></sqm-big-stat>`);
124
- const page = await newE2EPage();
125
- const { expectElement, hasInvalidStat } = statFunctions(page);
126
- await page.setContent(html);
127
- await page.waitForChanges();
128
- await expectElement("sqm-big-stat");
129
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
130
- hasInvalidStat(stat);
131
- page.close();
132
- });
133
- test("/programGoals/count returns !!!", async () => {
134
- const html = getHTML(`<sqm-big-stat stat-type="/programGoals/count"></sqm-big-stat>`);
135
- const page = await newE2EPage();
136
- const { expectElement, hasInvalidStat } = statFunctions(page);
137
- await page.setContent(html);
138
- await page.waitForChanges();
139
- await expectElement("sqm-big-stat");
140
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
141
- hasInvalidStat(stat);
142
- page.close();
143
- });
144
- test("/programGoals/conversionCount returns !!!", async () => {
145
- const html = getHTML(`<sqm-big-stat stat-type="/programGoals/conversionCount"></sqm-big-stat>`);
146
- const page = await newE2EPage();
147
- const { expectElement, hasInvalidStat } = statFunctions(page);
148
- await page.setContent(html);
149
- await page.waitForChanges();
150
- await expectElement("sqm-big-stat");
151
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
152
- hasInvalidStat(stat);
153
- page.close();
154
- });
155
- test("/programGoals/count/My-Goal/referrals returns !!!", async () => {
156
- const html = getHTML(`<sqm-big-stat stat-type="/programGoals/count/My-Goal/referrals"></sqm-big-stat>`);
157
- const page = await newE2EPage();
158
- const { expectElement, hasInvalidStat } = statFunctions(page);
159
- await page.setContent(html);
160
- await page.waitForChanges();
161
- await expectElement("sqm-big-stat");
162
- const stat = await page.find(`sqm-big-stat >>> div > div[part="stat-value"]`);
163
- hasInvalidStat(stat);
164
- page.close();
165
- });
166
- });
167
- // nice debugging tool
168
- // console.log(await page.evaluate(()=>document.body.innerHTML))
@@ -1,180 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- function newRoute(id, path) {
3
- return /*html*/ `
4
- <sqm-route path="${path}">
5
- <div id=${id}></div>
6
- </sqm-route>`;
7
- }
8
- function newTemplate(id, path) {
9
- return /*html*/ `
10
- <template path="${path}">
11
- <div id=${id}></div>
12
- </template>`;
13
- }
14
- function newPageFunctions(page) {
15
- return {
16
- expectElement: async (selector) => { var _a;
17
- // convert to string because jest pretty printing the object causes errors
18
- return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
19
- dontExpectElement: async (selector) => { var _a; return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
20
- expectTemplate: async (selector) => { var _a; return expect((_a = (await page.find("#" + selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
21
- dontExpectTemplate: async (selector) => { var _a; return expect((_a = (await page.find("#" + selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
22
- expectRoute: async (selector) => {
23
- var _a;
24
- return expect((_a = (await page.find('div[style="display: contents;"] > div#' + selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined();
25
- },
26
- dontExpectRoute: async (selector) => {
27
- var _a;
28
- return expect((_a = (await page.find('div[style="display: contents;"] > div#' + selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined();
29
- },
30
- history: {
31
- push: (path) => page.evaluate((x) => window.squatchHistory.push(x), path),
32
- back: () => page.evaluate(() => window.squatchHistory.back()),
33
- },
34
- };
35
- }
36
- describe("sqm-router", () => {
37
- test("Default route", async () => {
38
- const html = /*html*/ `
39
- <sqm-router>
40
- ${newRoute("RouteA", "/")}
41
- ${newRoute("RouteB", "/B")}
42
- </sqm-router>
43
- `;
44
- const page = await newE2EPage();
45
- await page.setContent(html);
46
- const { expectElement, expectRoute, dontExpectRoute } = newPageFunctions(page);
47
- await expectElement("sqm-router");
48
- await expectRoute("RouteA");
49
- await dontExpectRoute("RouteB");
50
- page.close();
51
- });
52
- test("Changing pages", async () => {
53
- const html = /*html*/ `
54
- <sqm-router>
55
- ${newRoute("RouteA", "/")}
56
- ${newRoute("RouteB", "/B")}
57
- </sqm-router>
58
- `;
59
- const page = await newE2EPage();
60
- await page.setContent(html);
61
- const { expectElement, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
62
- await expectElement("sqm-router");
63
- await expectRoute("RouteA");
64
- await dontExpectRoute("RouteB");
65
- await history.push("/B");
66
- await page.waitForChanges();
67
- await dontExpectRoute("RouteA");
68
- await expectRoute("RouteB");
69
- await history.push("/");
70
- await page.waitForChanges();
71
- await expectRoute("RouteA");
72
- await dontExpectRoute("RouteB");
73
- page.close();
74
- });
75
- test("Going back", async () => {
76
- const html = /*html*/ `
77
- <sqm-router>
78
- ${newRoute("RouteA", "/")}
79
- ${newRoute("RouteB", "/B")}
80
- ${newRoute("RouteC", "/C")}
81
- </sqm-router>
82
- `;
83
- const page = await newE2EPage();
84
- await page.setContent(html);
85
- const { expectElement, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
86
- await expectElement("sqm-router");
87
- await expectRoute("RouteA");
88
- await dontExpectRoute("RouteB");
89
- await dontExpectRoute("RouteC");
90
- await history.push("/B");
91
- await page.waitForChanges();
92
- await dontExpectRoute("RouteA");
93
- await expectRoute("RouteB");
94
- await dontExpectRoute("RouteC");
95
- await history.push("/C");
96
- await page.waitForChanges();
97
- await dontExpectRoute("RouteA");
98
- await dontExpectRoute("RouteB");
99
- await expectRoute("RouteC");
100
- await history.back();
101
- await page.waitForChanges();
102
- await dontExpectRoute("RouteA");
103
- await expectRoute("RouteB");
104
- await dontExpectRoute("RouteC");
105
- await history.back();
106
- await page.waitForChanges();
107
- await expectRoute("RouteA");
108
- await dontExpectRoute("RouteB");
109
- await dontExpectRoute("RouteC");
110
- page.close();
111
- });
112
- test("Template has precedence over route", async () => {
113
- const html = /*html*/ `
114
- <sqm-router>
115
- ${newRoute("RouteA", "/")}
116
- ${newTemplate("RouteB", "/")}
117
- ${newRoute("RouteC", "/B")}
118
- </sqm-router>
119
- `;
120
- const page = await newE2EPage();
121
- await page.setContent(html);
122
- const { expectElement, expectTemplate, dontExpectTemplate, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
123
- await expectElement("sqm-router");
124
- await dontExpectRoute("RouteA");
125
- await expectTemplate("RouteB");
126
- await dontExpectRoute("RouteC");
127
- await history.push("/B");
128
- await page.waitForChanges();
129
- await dontExpectRoute("RouteA");
130
- await dontExpectTemplate("RouteB");
131
- await expectRoute("RouteC");
132
- await history.push("/");
133
- await page.waitForChanges();
134
- await dontExpectRoute("RouteA");
135
- await expectTemplate("RouteB");
136
- await dontExpectRoute("RouteC");
137
- page.close();
138
- });
139
- test("First matching element is chosen, with precedence", async () => {
140
- const html = /*html*/ `
141
- <sqm-router>
142
- ${newRoute("RootA", "/")}
143
- ${newRoute("RootB", "/")}
144
- ${newTemplate("RootC", "/")}
145
- ${newTemplate("RootD", "/")}
146
- ${newRoute("StuffA", "/stuff")}
147
- ${newRoute("StuffB", "/stuff")}
148
- </sqm-router>
149
- `;
150
- const page = await newE2EPage();
151
- await page.setContent(html);
152
- const { expectElement, expectTemplate, dontExpectTemplate, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
153
- await expectElement("sqm-router");
154
- await dontExpectRoute("RootA");
155
- await dontExpectRoute("RootB");
156
- await expectTemplate("RootC");
157
- await dontExpectTemplate("RootD");
158
- await dontExpectRoute("StuffA");
159
- await dontExpectRoute("StuffB");
160
- await history.push("/stuff");
161
- await page.waitForChanges();
162
- await dontExpectRoute("RootA");
163
- await dontExpectRoute("RootB");
164
- await dontExpectTemplate("RootC");
165
- await dontExpectTemplate("RootD");
166
- await expectRoute("StuffA");
167
- await dontExpectRoute("StuffB");
168
- await history.push("/");
169
- await page.waitForChanges();
170
- await dontExpectRoute("RootA");
171
- await dontExpectRoute("RootB");
172
- await expectTemplate("RootC");
173
- await dontExpectTemplate("RootD");
174
- await dontExpectRoute("StuffA");
175
- await dontExpectRoute("StuffB");
176
- page.close();
177
- });
178
- });
179
- // nice debugging tool
180
- // console.log(await page.evaluate(()=>document.body.innerHTML))
@@ -1,113 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- function newColumn(id) {
3
- return /*html*/ `<sqm-rewards-table-date-column id="${id}"></sqm-rewards-table-date-column>`;
4
- }
5
- function newElement(id) {
6
- return /*html*/ `<sqm-big-stat id="${id}"></sqm-big-stat>`;
7
- }
8
- function newPlopTarget(id) {
9
- return /*html*/ `<raisins-plop-target id="${id}"></raisins-plop-target>`;
10
- }
11
- function newPageFunctions(page) {
12
- return {
13
- expectElement: async (selector) => { var _a;
14
- // convert to string because jest pretty printing the object causes errors
15
- return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
16
- dontExpectElement: async (selector) => { var _a; return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
17
- };
18
- }
19
- async function createDemoPage(html) {
20
- // @ts-ignore
21
- window.widgetIdent = { env: "demo" };
22
- const page = await newE2EPage();
23
- await page.setContent(html);
24
- const { expectElement, dontExpectElement } = newPageFunctions(page);
25
- return { page, expectElement, dontExpectElement };
26
- }
27
- describe("sqm-rewards-table", () => {
28
- test("Default table", async () => {
29
- const html = /*html*/ `
30
- <sqm-rewards-table>
31
- ${newColumn("column-A")}
32
- ${newElement("plop-A")}
33
- ${newColumn("column-B")}
34
- </sqm-rewards-table>
35
- `;
36
- const { page, expectElement } = await createDemoPage(html);
37
- await expectElement("sqm-rewards-table");
38
- await expectElement("#column-A");
39
- await expectElement("#column-B");
40
- page.close();
41
- });
42
- // test("Adding a plop target", async () => {
43
- // const html = /*html*/ `
44
- // <sqm-rewards-table>
45
- // ${newColumn("column-A")}
46
- // ${newPlopTarget("plop-A")}
47
- // ${newColumn("column-B")}
48
- // </sqm-rewards-table>
49
- // `;
50
- // const { page, expectElement } = await createDemoPage(html);
51
- // await expectElement("#column-A");
52
- // await expectElement("#plop-A");
53
- // await expectElement("#column-B");
54
- // page.close();
55
- // });
56
- // test("Removing a plop target", async () => {
57
- // const html = /*html*/ `
58
- // <sqm-rewards-table>
59
- // ${newColumn("column-A")}
60
- // ${newPlopTarget("plop-A")}
61
- // ${newColumn("column-B")}
62
- // </sqm-rewards-table>
63
- // `;
64
- // const { page, expectElement, dontExpectElement } = await createDemoPage(
65
- // html
66
- // );
67
- // await expectElement("#column-A");
68
- // await expectElement("#plop-A");
69
- // await expectElement("#column-B");
70
- // const noPlop = /*html*/ `
71
- // <sqm-rewards-table>
72
- // ${newColumn("column-A")}
73
- // ${newColumn("column-B")}
74
- // </sqm-rewards-table>
75
- // `;
76
- // await page.setContent(noPlop);
77
- // await dontExpectElement("#plop-A");
78
- // page.close();
79
- // });
80
- // TODO: Don't actually have all of the functions available to test these properly
81
- // test("Adding and then removing plop target", async () => {
82
- // const html = /*html*/ `
83
- // <sqm-rewards-table>
84
- // ${newColumn("column-A")}
85
- // ${newColumn("column-B")}
86
- // </sqm-rewards-table>
87
- // `;
88
- // const { page, expectElement } = await createDemoPage(html);
89
- // page.close();
90
- // });
91
- // test("Adding non-table column plop target", async () => {
92
- // const html = /*html*/ `
93
- // <sqm-rewards-table>
94
- // ${newColumn("column-A")}
95
- // ${newColumn("column-B")}
96
- // </sqm-rewards-table>
97
- // `;
98
- // const { page, expectElement } = await createDemoPage(html);
99
- // page.close();
100
- // });
101
- // test("Adding non-table column plop target and cancelling, then add column", async () => {
102
- // const html = /*html*/ `
103
- // <sqm-rewards-table>
104
- // ${newColumn("column-A")}
105
- // ${newColumn("column-B")}
106
- // </sqm-rewards-table>
107
- // `;
108
- // const { page, expectElement } = await createDemoPage(html);
109
- // page.close();
110
- // });
111
- });
112
- // nice debugging tool
113
- // console.log(await page.evaluate(()=>document.body.innerHTML))
@@ -1,180 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- function newRoute(id, path) {
3
- return /*html*/ `
4
- <sqm-route path="${path}">
5
- <div id=${id}></div>
6
- </sqm-route>`;
7
- }
8
- function newTemplate(id, path) {
9
- return /*html*/ `
10
- <template path="${path}">
11
- <div id=${id}></div>
12
- </template>`;
13
- }
14
- function newPageFunctions(page) {
15
- return {
16
- expectElement: async (selector) => { var _a;
17
- // convert to string because jest pretty printing the object causes errors
18
- return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
19
- dontExpectElement: async (selector) => { var _a; return expect((_a = (await page.find(selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
20
- expectTemplate: async (selector) => { var _a; return expect((_a = (await page.find("#" + selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined(); },
21
- dontExpectTemplate: async (selector) => { var _a; return expect((_a = (await page.find("#" + selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined(); },
22
- expectRoute: async (selector) => {
23
- var _a;
24
- return expect((_a = (await page.find('div[style="display: contents;"] > div#' + selector))) === null || _a === void 0 ? void 0 : _a.id).not.toBeUndefined();
25
- },
26
- dontExpectRoute: async (selector) => {
27
- var _a;
28
- return expect((_a = (await page.find('div[style="display: contents;"] > div#' + selector))) === null || _a === void 0 ? void 0 : _a.id).toBeUndefined();
29
- },
30
- history: {
31
- push: (path) => page.evaluate((x) => window.squatchHistory.push(x), path),
32
- back: () => page.evaluate(() => window.squatchHistory.back()),
33
- },
34
- };
35
- }
36
- describe("sqm-router", () => {
37
- test("Default route", async () => {
38
- const html = /*html*/ `
39
- <sqm-router>
40
- ${newRoute("RouteA", "/")}
41
- ${newRoute("RouteB", "/B")}
42
- </sqm-router>
43
- `;
44
- const page = await newE2EPage();
45
- await page.setContent(html);
46
- const { expectElement, expectRoute, dontExpectRoute } = newPageFunctions(page);
47
- await expectElement("sqm-router");
48
- await expectRoute("RouteA");
49
- await dontExpectRoute("RouteB");
50
- page.close();
51
- });
52
- test("Changing pages", async () => {
53
- const html = /*html*/ `
54
- <sqm-router>
55
- ${newRoute("RouteA", "/")}
56
- ${newRoute("RouteB", "/B")}
57
- </sqm-router>
58
- `;
59
- const page = await newE2EPage();
60
- await page.setContent(html);
61
- const { expectElement, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
62
- await expectElement("sqm-router");
63
- await expectRoute("RouteA");
64
- await dontExpectRoute("RouteB");
65
- await history.push("/B");
66
- await page.waitForChanges();
67
- await dontExpectRoute("RouteA");
68
- await expectRoute("RouteB");
69
- await history.push("/");
70
- await page.waitForChanges();
71
- await expectRoute("RouteA");
72
- await dontExpectRoute("RouteB");
73
- page.close();
74
- });
75
- test("Going back", async () => {
76
- const html = /*html*/ `
77
- <sqm-router>
78
- ${newRoute("RouteA", "/")}
79
- ${newRoute("RouteB", "/B")}
80
- ${newRoute("RouteC", "/C")}
81
- </sqm-router>
82
- `;
83
- const page = await newE2EPage();
84
- await page.setContent(html);
85
- const { expectElement, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
86
- await expectElement("sqm-router");
87
- await expectRoute("RouteA");
88
- await dontExpectRoute("RouteB");
89
- await dontExpectRoute("RouteC");
90
- await history.push("/B");
91
- await page.waitForChanges();
92
- await dontExpectRoute("RouteA");
93
- await expectRoute("RouteB");
94
- await dontExpectRoute("RouteC");
95
- await history.push("/C");
96
- await page.waitForChanges();
97
- await dontExpectRoute("RouteA");
98
- await dontExpectRoute("RouteB");
99
- await expectRoute("RouteC");
100
- await history.back();
101
- await page.waitForChanges();
102
- await dontExpectRoute("RouteA");
103
- await expectRoute("RouteB");
104
- await dontExpectRoute("RouteC");
105
- await history.back();
106
- await page.waitForChanges();
107
- await expectRoute("RouteA");
108
- await dontExpectRoute("RouteB");
109
- await dontExpectRoute("RouteC");
110
- page.close();
111
- });
112
- test("Template has precedence over route", async () => {
113
- const html = /*html*/ `
114
- <sqm-router>
115
- ${newRoute("RouteA", "/")}
116
- ${newTemplate("RouteB", "/")}
117
- ${newRoute("RouteC", "/B")}
118
- </sqm-router>
119
- `;
120
- const page = await newE2EPage();
121
- await page.setContent(html);
122
- const { expectElement, expectTemplate, dontExpectTemplate, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
123
- await expectElement("sqm-router");
124
- await dontExpectRoute("RouteA");
125
- await expectTemplate("RouteB");
126
- await dontExpectRoute("RouteC");
127
- await history.push("/B");
128
- await page.waitForChanges();
129
- await dontExpectRoute("RouteA");
130
- await dontExpectTemplate("RouteB");
131
- await expectRoute("RouteC");
132
- await history.push("/");
133
- await page.waitForChanges();
134
- await dontExpectRoute("RouteA");
135
- await expectTemplate("RouteB");
136
- await dontExpectRoute("RouteC");
137
- page.close();
138
- });
139
- test("First matching element is chosen, with precedence", async () => {
140
- const html = /*html*/ `
141
- <sqm-router>
142
- ${newRoute("RootA", "/")}
143
- ${newRoute("RootB", "/")}
144
- ${newTemplate("RootC", "/")}
145
- ${newTemplate("RootD", "/")}
146
- ${newRoute("StuffA", "/stuff")}
147
- ${newRoute("StuffB", "/stuff")}
148
- </sqm-router>
149
- `;
150
- const page = await newE2EPage();
151
- await page.setContent(html);
152
- const { expectElement, expectTemplate, dontExpectTemplate, expectRoute, dontExpectRoute, history, } = newPageFunctions(page);
153
- await expectElement("sqm-router");
154
- await dontExpectRoute("RootA");
155
- await dontExpectRoute("RootB");
156
- await expectTemplate("RootC");
157
- await dontExpectTemplate("RootD");
158
- await dontExpectRoute("StuffA");
159
- await dontExpectRoute("StuffB");
160
- await history.push("/stuff");
161
- await page.waitForChanges();
162
- await dontExpectRoute("RootA");
163
- await dontExpectRoute("RootB");
164
- await dontExpectTemplate("RootC");
165
- await dontExpectTemplate("RootD");
166
- await expectRoute("StuffA");
167
- await dontExpectRoute("StuffB");
168
- await history.push("/");
169
- await page.waitForChanges();
170
- await dontExpectRoute("RootA");
171
- await dontExpectRoute("RootB");
172
- await expectTemplate("RootC");
173
- await dontExpectTemplate("RootD");
174
- await dontExpectRoute("StuffA");
175
- await dontExpectRoute("StuffB");
176
- page.close();
177
- });
178
- });
179
- // nice debugging tool
180
- // console.log(await page.evaluate(()=>document.body.innerHTML))