mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 15:36:33 +00:00
Merge dev into fix/prettier
Brings in the Tours addon and the MikroORM follow-ups. Conflicts were resolved to dev's content, then every file dev brought in was run through prettier and eslint --fix so the branch stays uniformly formatted.
This commit is contained in:
@@ -32,6 +32,7 @@ import {
|
||||
sharedTestOrm,
|
||||
createTestTripsRepo,
|
||||
} from './test-uow';
|
||||
import { createTestToursRepo } from './tours-repos';
|
||||
|
||||
import type { Database } from 'better-sqlite3';
|
||||
|
||||
@@ -94,6 +95,7 @@ export async function accommodationsOver(conn: Database): Promise<Accommodations
|
||||
await createTestPlacesRepo(conn),
|
||||
await createTestTripMembersRepo(conn),
|
||||
await createTestRoadtripViasRepo(conn),
|
||||
await createTestToursRepo(conn),
|
||||
);
|
||||
return new AccommodationsService(
|
||||
permissions,
|
||||
|
||||
@@ -221,6 +221,7 @@ import {
|
||||
sharedTestOrm,
|
||||
} from './test-uow';
|
||||
import { createTestTodoItemsRepo, createTestTodoCategoryAssigneesRepo } from './todo-repos';
|
||||
import { createTestToursRepo } from './tours-repos';
|
||||
import {
|
||||
createTestVacayPlansRepo,
|
||||
createTestVacayPlanMembersRepo,
|
||||
@@ -432,6 +433,7 @@ export async function createMcpTestRegistry(): Promise<McpRegistry> {
|
||||
await createTestPlacesRepo(db),
|
||||
await createTestTripMembersRepo(db),
|
||||
await createTestRoadtripViasRepo(db),
|
||||
await createTestToursRepo(db),
|
||||
);
|
||||
const accommodationsService = new AccommodationsService(
|
||||
permissionsService,
|
||||
|
||||
@@ -165,6 +165,7 @@ import {
|
||||
createTestRoadtripDayBoundariesRepo,
|
||||
} from './test-uow';
|
||||
import { createTestTodoItemsRepo, createTestTodoCategoryAssigneesRepo } from './todo-repos';
|
||||
import { createTestToursRepo } from './tours-repos';
|
||||
import {
|
||||
createTestVacayPlansRepo,
|
||||
createTestVacayPlanMembersRepo,
|
||||
@@ -389,6 +390,7 @@ export async function createPluginRpcHostFactory(db: Database.Database): Promise
|
||||
await createTestPlacesRepo(db),
|
||||
await createTestTripMembersRepo(db),
|
||||
await createTestRoadtripViasRepo(db),
|
||||
await createTestToursRepo(db),
|
||||
);
|
||||
const membership = new TripMembershipService(await createTestTripsRepo(db), await createTestTripMembersRepo(db));
|
||||
const notifications = await makeNotificationsService(db, realtime);
|
||||
|
||||
@@ -51,6 +51,9 @@ const KEEP_TABLES = new Set([
|
||||
'photo_provider_fields',
|
||||
'document_providers',
|
||||
'document_provider_fields',
|
||||
// Reference data the migration that creates it writes (`tours.tour_type`
|
||||
// has an FK on it); nothing re-seeds it, so a reset must keep it.
|
||||
'tour_types',
|
||||
// Migration bookkeeping: clearing these would make the next boot replay the
|
||||
// whole history over a schema that already has it.
|
||||
'schema_version',
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
import { TourWaypoints } from '../../src/db/entities/TourWaypoints.entity';
|
||||
import { Tours } from '../../src/db/entities/Tours.entity';
|
||||
import type { TourWaypointsRepository } from '../../src/db/repositories/TourWaypoints.repository';
|
||||
import type { ToursRepository } from '../../src/db/repositories/Tours.repository';
|
||||
import { sharedTestOrm } from './test-uow';
|
||||
|
||||
import type Database from 'better-sqlite3';
|
||||
|
||||
/**
|
||||
* Tours test-only repository factories, bound to a suite's own better-sqlite3
|
||||
* handle through the same memoised `sharedTestOrm` `test-uow.ts` exports, so
|
||||
* a repository built here and a `UnitOfWork` from `createTestUnitOfWork`
|
||||
* resolve the same `EntityManager` (the `todo-repos.ts` precedent).
|
||||
*/
|
||||
export function createTestToursRepo(db: Database.Database): Promise<ToursRepository> {
|
||||
return sharedTestOrm(db).then((t) => t.repo(Tours));
|
||||
}
|
||||
|
||||
export function createTestTourWaypointsRepo(db: Database.Database): Promise<TourWaypointsRepository> {
|
||||
return sharedTestOrm(db).then((t) => t.repo(TourWaypoints));
|
||||
}
|
||||
|
||||
/** A `tours` row for an existing place, with the defaults a GPX import writes. */
|
||||
export function createTour(
|
||||
db: Database.Database,
|
||||
placeId: number,
|
||||
overrides: Partial<{
|
||||
distance: number | null;
|
||||
match_confidence: number | null;
|
||||
max_hiking_difficulty: number;
|
||||
created_at: string;
|
||||
}> = {},
|
||||
): void {
|
||||
db.prepare(
|
||||
`INSERT INTO tours (place_id, tour_type, distance, match_confidence, max_hiking_difficulty, created_at)
|
||||
VALUES (?, 'hike', ?, ?, ?, COALESCE(?, CURRENT_TIMESTAMP))`,
|
||||
).run(
|
||||
placeId,
|
||||
overrides.distance ?? null,
|
||||
overrides.match_confidence ?? null,
|
||||
overrides.max_hiking_difficulty ?? 2,
|
||||
overrides.created_at ?? null,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user