const testDeparturesInDirection = async (cfg) => {
	const {
		test: t,
		fetchDepartures,
		fetchTrip,
		id,
		directionIds,
		when,
		validate
	} = cfg

	const res = await fetchDepartures(id, {
		direction: directionIds[0],
		when
	})
	const {departures: deps} = res

	validate(t, res, 'departuresResponse', 'res')

	for (let i = 0; i < deps.length; i++) {
		const dep = deps[i]
		const name = `deps[${i}]`

		const line = dep.line && dep.line.name
		const {trip} = await fetchTrip(dep.tripId, line, {
			when, stopovers: true
		})
		t.ok(trip.stopovers.some(st => (
			st.stop.station && directionIds.includes(st.stop.station.id) ||
			directionIds.includes(st.stop.id)
		)), `trip ${dep.tripId} of ${name} has no stopover at ${directionIds.join('/')}`)
	}
}

export {
	testDeparturesInDirection,
}