Skip to content

Commit 44a6cc0

Browse files
authored
fix(pagination): on:change dispatches with correct value (#2194)
1 parent 28d15ff commit 44a6cc0

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

src/Pagination/Pagination.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@
135135
hideLabel
136136
noLabel
137137
inline
138-
on:change={() => {
139-
dispatch("change", { pageSize });
138+
on:update={(event) => {
139+
dispatch("change", { pageSize: event.detail });
140140
}}
141141
bind:selected={pageSize}
142142
>
@@ -165,8 +165,8 @@
165165
labelText="Page number, of {totalPages} pages"
166166
inline
167167
hideLabel
168-
on:change={() => {
169-
dispatch("change", { page });
168+
on:update={(event) => {
169+
dispatch("change", { page: event.detail });
170170
}}
171171
bind:selected={page}
172172
>

tests/Pagination/Pagination.test.ts

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ describe("Pagination", () => {
7575
const select = screen.getByRole("combobox", { name: "Items per page:" });
7676
await user.selectOptions(select, "15");
7777

78-
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 10 });
78+
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 15 });
7979
expect(consoleLog).toHaveBeenCalledWith("update", {
8080
pageSize: 15,
8181
page: 1,
@@ -91,7 +91,7 @@ describe("Pagination", () => {
9191
const pageSelect = screen.getAllByRole("combobox");
9292
await user.selectOptions(pageSelect[0], "5");
9393

94-
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 10 });
94+
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 5 });
9595
expect(consoleLog).toHaveBeenCalledWith("update", { pageSize: 5, page: 1 });
9696
});
9797

@@ -169,7 +169,7 @@ describe("Pagination", () => {
169169
// Change page size
170170
const pageSizeSelect = screen.getAllByRole("combobox");
171171
await user.selectOptions(pageSizeSelect[0], "15");
172-
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 10 });
172+
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 15 });
173173
expect(consoleLog).toHaveBeenCalledWith("update", {
174174
pageSize: 15,
175175
page: 1,
@@ -178,7 +178,7 @@ describe("Pagination", () => {
178178
// Change page
179179
const pageSelect = screen.getAllByRole("combobox");
180180
await user.selectOptions(pageSelect[1], "2");
181-
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 10 });
181+
expect(consoleLog).toHaveBeenCalledWith("change", { page: 2 });
182182
expect(consoleLog).toHaveBeenCalledWith("update", {
183183
pageSize: 15,
184184
page: 2,
@@ -257,4 +257,23 @@ describe("Pagination", () => {
257257

258258
expect(screen.getByText(/110 of 100000/)).toBeInTheDocument();
259259
});
260+
261+
it("should dispatch change event with new value, not previous value", async () => {
262+
const consoleLog = vi.spyOn(console, "log");
263+
render(Pagination, {
264+
props: { totalItems: 102, pageSizes: [10, 15, 20] },
265+
});
266+
267+
const pageSizeSelect = screen.getByRole("combobox", {
268+
name: "Items per page:",
269+
});
270+
await user.selectOptions(pageSizeSelect, "15");
271+
272+
expect(consoleLog).toHaveBeenCalledWith("change", { pageSize: 15 });
273+
274+
const pageSelect = screen.getAllByRole("combobox")[1];
275+
await user.selectOptions(pageSelect, "2");
276+
277+
expect(consoleLog).toHaveBeenCalledWith("change", { page: 2 });
278+
});
260279
});

0 commit comments

Comments
 (0)