Skip to content

Commit 3fa1fe6

Browse files
committed
test(angular): add reorder-group test
1 parent 43bd9a3 commit 3fa1fe6

File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { expect } from '@playwright/test';
2+
import { test } from '@playwright/test';
3+
import { dragElementBy } from '../../utils/drag-element';
4+
5+
test.describe('reorder-group: angular standalone', () => {
6+
test('should reorder the items', async ({ page }) => {
7+
await page.goto('/standalone/reorder-group');
8+
9+
// Get initial order
10+
const initialItems = await page.locator('ion-item').allTextContents();
11+
expect(initialItems).toEqual(['Item 1', 'Item 2', 'Item 3']);
12+
13+
const reorderGroup = page.locator('ion-reorder-group');
14+
15+
// Drag the first item down to move it to the end (below Item 3)
16+
await dragElementBy(reorderGroup.locator('ion-reorder').first(), page, 0, 300);
17+
18+
// Wait for the reorder to complete
19+
await page.waitForTimeout(500);
20+
21+
// Verify the new order - Item 1 should now be at the end
22+
const finalItems = await page.locator('ion-item').allTextContents();
23+
expect(finalItems).toEqual(['Item 2', 'Item 3', 'Item 1']);
24+
});
25+
});

packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const routes: Routes = [
1919
{ path: 'providers', loadComponent: () => import('../providers/providers.component').then(c => c.ProvidersComponent) },
2020
{ path: 'overlay-controllers', loadComponent: () => import('../overlay-controllers/overlay-controllers.component').then(c => c.OverlayControllersComponent) },
2121
{ path: 'button', loadComponent: () => import('../button/button.component').then(c => c.ButtonComponent) },
22+
{ path: 'reorder-group', loadComponent: () => import('../reorder-group/reorder-group.component').then(c => c.ReorderGroupComponent) },
2223
{ path: 'icon', loadComponent: () => import('../icon/icon.component').then(c => c.IconComponent) },
2324
{ path: 'split-pane', redirectTo: '/standalone/split-pane/inbox', pathMatch: 'full' },
2425
{

packages/angular/test/base/src/app/standalone/home-page/home-page.component.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
Icon Test
2929
</ion-label>
3030
</ion-item>
31+
<ion-item routerLink="/standalone/reorder-group">
32+
<ion-label>
33+
Reorder Group Test
34+
</ion-label>
35+
</ion-item>
3136
</ion-list>
3237

3338
<ion-list>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Component } from "@angular/core";
2+
import { IonItem, IonLabel, IonReorder, IonReorderGroup } from '@ionic/angular/standalone';
3+
import { ReorderEndCustomEvent } from "@ionic/angular";
4+
5+
@Component({
6+
selector: 'app-reorder-group',
7+
template: `
8+
<ion-reorder-group disabled="false" (ionReorderEnd)="onReorderEnd($event)">
9+
<ion-item>
10+
<ion-reorder slot="end"></ion-reorder>
11+
<ion-label>Item 1</ion-label>
12+
</ion-item>
13+
<ion-item>
14+
<ion-reorder slot="end"></ion-reorder>
15+
<ion-label>Item 2</ion-label>
16+
</ion-item>
17+
<ion-item>
18+
<ion-reorder slot="end"></ion-reorder>
19+
<ion-label>Item 3</ion-label>
20+
</ion-item>
21+
</ion-reorder-group>
22+
`,
23+
standalone: true,
24+
imports: [IonItem, IonLabel, IonReorder, IonReorderGroup]
25+
})
26+
export class ReorderGroupComponent {
27+
onReorderEnd(event: ReorderEndCustomEvent) {
28+
if (event.detail.from !== event.detail.to) {
29+
console.log('ionReorderEnd: Dragged from index', event.detail.from, 'to', event.detail.to);
30+
} else {
31+
console.log('ionReorderEnd: No position change occurred');
32+
}
33+
34+
event.detail.complete();
35+
}
36+
}

0 commit comments

Comments
 (0)