test(e2e): a track plays the list it is in, not a queue of one
e7748f1 made double-click and single-row Play queue the list as
displayed with startIndex on that row; this frozen spec still asserted
a queue of one, and was the only failure in both the chromium and
webkit runs on main.
It asserts the new contract instead: more than one track queued,
currentIndex on the row that was activated, and the panel showing that
queue rather than some other one.
This commit is contained in:
@@ -92,7 +92,7 @@ test.describe('queue', () => {
|
|||||||
await app.getByTestId('nav-tracks').click();
|
await app.getByTestId('nav-tracks').click();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('playing a track populates the queue panel', async ({ app }) => {
|
test('playing a track queues the list it is in', async ({ app }) => {
|
||||||
await resetEvents(app);
|
await resetEvents(app);
|
||||||
await longRow(app).dblclick();
|
await longRow(app).dblclick();
|
||||||
await waitForEvent(app, 'QueueChanged');
|
await waitForEvent(app, 'QueueChanged');
|
||||||
@@ -105,15 +105,23 @@ test.describe('queue', () => {
|
|||||||
|
|
||||||
await queueToggle.click();
|
await queueToggle.click();
|
||||||
|
|
||||||
await expect(app.getByTestId('queue-row')).toHaveCount(1);
|
// Activating one row plays the list that row is in, from that row —
|
||||||
|
// the library as displayed, not a queue of one. The row's own
|
||||||
|
// position is what `currentIndex` points at.
|
||||||
|
const state = await callBinding<{
|
||||||
|
tracks: { title: string }[];
|
||||||
|
currentIndex: number;
|
||||||
|
}>(app, 'queue.Queue.GetState');
|
||||||
|
|
||||||
const state = await callBinding<{ tracks: unknown[] }>(
|
expect(state.tracks.length).toBeGreaterThan(1);
|
||||||
app,
|
expect(state.tracks[state.currentIndex]?.title).toContain(LONG_TRACK);
|
||||||
'queue.Queue.GetState',
|
|
||||||
|
// The panel shows that queue rather than some other one: every
|
||||||
|
// fixture track fits on screen, so the counts are comparable.
|
||||||
|
await expect(app.getByTestId('queue-row')).toHaveCount(
|
||||||
|
state.tracks.length,
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(state.tracks).toHaveLength(1);
|
|
||||||
|
|
||||||
// Shut it again, and wait until it really is shut. These specs
|
// Shut it again, and wait until it really is shut. These specs
|
||||||
// share one backend process in file order, the panel's width is
|
// share one backend process in file order, the panel's width is
|
||||||
// animated, and the transport slides while it closes — a click
|
// animated, and the transport slides while it closes — a click
|
||||||
|
|||||||
Reference in New Issue
Block a user