mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-14 00:01:03 +00:00
164a3633ac
Ski becomes "Ski & winter", a type the planner plans with six disciplines (alpine, snowboard, cross-country, ski touring, snowshoeing, winter hiking), nothing preselected; saving needs a discipline, and a technique for cross-country. Every leg is drawn straight between the points through planner/skiRouting.ts, the one place the piste router will plug in, with its heights from the elevation source and no ski time worked out. The hike's winter label goes entirely: its migration, column, field, marks, GPX rule, MCP field and strings. A hike is summer only; a ski tour with the snowshoe discipline exports as snowshoeing. The unreleased ski migration takes the six disciplines and the collection migration loses the winter column. The pistes are offered for a ski tour, shown until switched off, and with no tour open, never for a hike. Export, copy, collections, stages (untimed), actual tracks, the atlas, list and day marks (one glyph per discipline), 3D, planning over a ski import and list_tours/get_tour_plan know the planned ski tour.
52 lines
3.0 KiB
TypeScript
52 lines
3.0 KiB
TypeScript
import { gpxActivityOf } from '../../../src/nest/tours/tour-gpx-export.helpers';
|
|
|
|
import { describe, expect, it } from 'vitest';
|
|
|
|
// TOUR-GPX-ACTIVITY-001 to TOUR-GPX-ACTIVITY-007
|
|
|
|
describe('gpxActivityOf (PR1-06A, BIK-01, RUN-01, SKI-02, HOR-01)', () => {
|
|
it('TOUR-GPX-ACTIVITY-001: a bike tour names its profile, and the plainest riding without a known one', () => {
|
|
expect(gpxActivityOf({ tour_type: 'bike', bike_profile: 'mtb' })).toBe('mountain_biking');
|
|
expect(gpxActivityOf({ tour_type: 'bike', bike_profile: null })).toBe('cycling');
|
|
expect(gpxActivityOf({ tour_type: 'bike', bike_profile: 'unicycle' })).toBe('cycling');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-002: a paddle tour names its boat, and paddling without a known one', () => {
|
|
expect(gpxActivityOf({ tour_type: 'kayak', boat_type: 'canoe' })).toBe('canoeing');
|
|
expect(gpxActivityOf({ tour_type: 'kayak', boat_type: null })).toBe('paddling');
|
|
expect(gpxActivityOf({ tour_type: 'kayak', boat_type: 'raft' })).toBe('paddling');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-003: a hike is hiking, any other type its own key', () => {
|
|
expect(gpxActivityOf({ tour_type: 'hike' })).toBe('hiking');
|
|
expect(gpxActivityOf({ tour_type: 'walk' })).toBe('walk');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-004: snowshoes make a ski tour snowshoeing, a winter hike stays hiking, a hike is hiking (SKI-02)', () => {
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'snowshoe' })).toBe('snowshoeing');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'winter_hike' })).toBe('hiking');
|
|
expect(gpxActivityOf({ tour_type: 'hike', ski_discipline: null })).toBe('hiking');
|
|
expect(gpxActivityOf({ tour_type: 'walk' })).toBe('walk');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-005: a run is running, and stays running without a profile this build knows (RUN-01)', () => {
|
|
expect(gpxActivityOf({ tour_type: 'run', run_profile: 'running' })).toBe('running');
|
|
expect(gpxActivityOf({ tour_type: 'run', run_profile: null })).toBe('running');
|
|
expect(gpxActivityOf({ tour_type: 'run', run_profile: 'sprint' })).toBe('running');
|
|
expect(gpxActivityOf({ tour_type: 'run', run_profile: 'trail' })).toBe('trail_running');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-006: a ski track names its discipline, and skiing without a known one (SKI-02)', () => {
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'alpine' })).toBe('alpine_skiing');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'snowboard' })).toBe('snowboarding');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'cross_country' })).toBe('cross_country_skiing');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'touring' })).toBe('backcountry_skiing');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: null })).toBe('skiing');
|
|
expect(gpxActivityOf({ tour_type: 'ski', ski_discipline: 'freeride' })).toBe('skiing');
|
|
});
|
|
|
|
it('TOUR-GPX-ACTIVITY-007: a horse tour is horseback riding (HOR-01)', () => {
|
|
expect(gpxActivityOf({ tour_type: 'horse' })).toBe('horseback_riding');
|
|
});
|
|
});
|