mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 05:26:47 +00:00
724c88c201
A mechanical prettier --write over server/src, server/tests, server/scripts and shared/src with the workspaces' .prettierrc; nothing but layout and import order changes, and every file keeps the same set of imports. shared is formatted throughout and its format baseline is empty. The server baseline keeps the 35 files that Prettier would grow past their lint:size limit (they need a split first, which is not a formatting change), and the generated entity files stay as their generator writes them.
125 lines
5.1 KiB
TypeScript
125 lines
5.1 KiB
TypeScript
import { TrekPhotos } from '../../src/db/entities/TrekPhotos.entity';
|
|
import { TripPhotos } from '../../src/db/entities/TripPhotos.entity';
|
|
import { AccommodationsService } from '../../src/nest/accommodations/accommodations.service';
|
|
import { AssignmentsService } from '../../src/nest/assignments/assignments.service';
|
|
import { JourneyDomainService } from '../../src/nest/journey/journey-domain.service';
|
|
import { PermissionsService } from '../../src/nest/permissions/permissions.service';
|
|
import { TrekPhotoRegistrationService } from '../../src/nest/photos/trek-photo-registration.service';
|
|
import { QueryHelpersService } from '../../src/nest/query-helpers/query-helpers.service';
|
|
import { RealtimeService } from '../../src/nest/realtime/realtime.service';
|
|
import { TripAccessService } from '../../src/nest/trip-membership/trip-access.service';
|
|
import { createTestBudgetItemsRepo } from './files-repos';
|
|
import {
|
|
createTestJourneysRepo,
|
|
createTestJourneyContributorsRepo,
|
|
createTestJourneyTripsRepo,
|
|
createTestJourneyEntriesRepo,
|
|
createTestJourneyPhotosRepo,
|
|
createTestJourneyEntryPhotosRepo,
|
|
} from './journey-repos';
|
|
import {
|
|
createTestUnitOfWork,
|
|
createTestAppSettingsRepo,
|
|
createTestTagsRepo,
|
|
createTestPlaceRatingsRepo,
|
|
createTestAssignmentParticipantsRepo,
|
|
createTestDayAssignmentsRepo,
|
|
createTestDaysRepo,
|
|
createTestPlacesRepo,
|
|
createTestTripMembersRepo,
|
|
createTestRoadtripViasRepo,
|
|
createTestDayAccommodationsRepo,
|
|
createTestReservationsRepo,
|
|
sharedTestOrm,
|
|
createTestTripsRepo,
|
|
} from './test-uow';
|
|
import { createTestToursRepo } from './tours-repos';
|
|
|
|
import type { Database } from 'better-sqlite3';
|
|
|
|
/**
|
|
* AccommodationsService over a test connection.
|
|
*
|
|
* Booking a night also writes the day stop that puts it on the route, through a
|
|
* real AssignmentsService rather than a stub: the stop is a row these cases read
|
|
* back, and it has to come out of the same connection. Five collaborators deep is
|
|
* why this is a helper and not five copies across the suites.
|
|
*
|
|
* Plan 4 Task 4: `DatabaseService` is gone — both this function and
|
|
* `accommodationsOver` below take the raw better-sqlite3 handle directly now
|
|
* (it was always the only thing either read off a `DatabaseService`
|
|
* instance). Kept as two functions for caller-shape continuity, though they
|
|
* are now identical.
|
|
*/
|
|
export async function makeAccommodationsService(
|
|
conn: Database,
|
|
realtime: RealtimeService = new RealtimeService(),
|
|
): Promise<AccommodationsService> {
|
|
return accommodationsOver(conn, realtime);
|
|
}
|
|
|
|
/**
|
|
* The same, for a suite that already holds the raw connection.
|
|
*
|
|
* ReservationsService takes one now, because a hotel booking owes the day plan
|
|
* the same stop a night entered under Days does, and every suite that builds
|
|
* that service by hand needs one to hand it.
|
|
*/
|
|
export async function accommodationsOver(
|
|
conn: Database,
|
|
realtime: RealtimeService = new RealtimeService(),
|
|
): Promise<AccommodationsService> {
|
|
const permissions = new PermissionsService(await createTestAppSettingsRepo(conn), await createTestUnitOfWork(conn));
|
|
const t = await sharedTestOrm(conn);
|
|
const assignments = new AssignmentsService(
|
|
new TripAccessService(await createTestTripsRepo(conn)),
|
|
permissions,
|
|
realtime,
|
|
new QueryHelpersService(
|
|
await createTestTagsRepo(conn),
|
|
await createTestPlaceRatingsRepo(conn),
|
|
await createTestAssignmentParticipantsRepo(conn),
|
|
),
|
|
new JourneyDomainService(
|
|
realtime,
|
|
new TrekPhotoRegistrationService(t.repo(TrekPhotos), t.repo(TripPhotos), await createTestJourneyPhotosRepo(conn)),
|
|
await createTestUnitOfWork(conn),
|
|
await createTestJourneysRepo(conn),
|
|
await createTestJourneyContributorsRepo(conn),
|
|
await createTestJourneyTripsRepo(conn),
|
|
await createTestJourneyEntriesRepo(conn),
|
|
await createTestTripsRepo(conn),
|
|
// Plan 3g Task 2 constructor-ripple: JourneyPhotosRepository/JourneyEntryPhotosRepository/PlacesRepository.
|
|
await createTestJourneyPhotosRepo(conn),
|
|
await createTestJourneyEntryPhotosRepo(conn),
|
|
await createTestPlacesRepo(conn),
|
|
),
|
|
await createTestUnitOfWork(conn),
|
|
await createTestDayAssignmentsRepo(conn),
|
|
await createTestAssignmentParticipantsRepo(conn),
|
|
await createTestDaysRepo(conn),
|
|
await createTestPlacesRepo(conn),
|
|
await createTestTripMembersRepo(conn),
|
|
await createTestRoadtripViasRepo(conn),
|
|
await createTestToursRepo(conn),
|
|
);
|
|
return new AccommodationsService(
|
|
permissions,
|
|
realtime,
|
|
assignments,
|
|
await createTestUnitOfWork(conn),
|
|
// Plan 4 Task 2 — AccommodationsService's own canAccessTrip delegate is now
|
|
// TripsRepository.findAccessible. Plan 4 Task 3 — stampLodging's
|
|
// getPlaceWithTags is PlacesRepository.findWithTagsAndRatings directly
|
|
// (`placesRepo` below, already injected).
|
|
new TripAccessService(await createTestTripsRepo(conn)),
|
|
await createTestDayAccommodationsRepo(conn),
|
|
await createTestDayAssignmentsRepo(conn),
|
|
await createTestPlacesRepo(conn),
|
|
await createTestDaysRepo(conn),
|
|
await createTestRoadtripViasRepo(conn),
|
|
await createTestReservationsRepo(conn),
|
|
await createTestBudgetItemsRepo(conn),
|
|
);
|
|
}
|