Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,10 @@ void main() {
await tapElement(tester, primaryButton);

// wait until T2 opened
await waitUntilExists(tester, find.descendant(of: find.byType(Header), matching: find.text('T2 SBB')));
await waitUntilExists(
tester,
find.descendant(of: find.byType(Header), matching: find.text('T2 ${l10n.c_ru_sbb_p}')),
);
await tester.pumpAndSettle();

// should not display navigation buttons (autoAdvancement is active)
Expand All @@ -115,7 +118,10 @@ void main() {
await tapElement(tester, previousButton);

// wait until T1 opened
await waitUntilExists(tester, find.descendant(of: find.byType(Header), matching: find.text('T1 SBB')));
await waitUntilExists(
tester,
find.descendant(of: find.byType(Header), matching: find.text('T1 ${l10n.c_ru_sbb_p}')),
);

await disconnect(tester);
});
Expand Down
13 changes: 6 additions & 7 deletions das_client/app/integration_test/test/train_search_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,11 @@ void main() {
expect(find.text(l10n.c_ru_sbb_c), findsOneWidget);
expect(find.descendant(of: modal, matching: find.text(l10n.c_ru_bls_p)), findsOneWidget);
expect(find.text(l10n.c_ru_bls_c), findsOneWidget);
expect(find.text(l10n.c_ru_sob), findsOneWidget);

await tapElement(tester, find.text(l10n.c_ru_sob));

expect(find.text(l10n.c_ru_sob), findsOneWidget);
expect(find.text(l10n.c_ru_sbb_p), findsNothing);
final sobI = find.text(l10n.c_ru_sob_i);
await tester.dragUntilVisible(sobI, modal, const Offset(0, -50));
expect(sobI, findsOneWidget);
await tapElement(tester, sobI, warnIfMissed: false);
expect(sobI, findsOneWidget);
});

testWidgets('test filter ru values', (tester) async {
Expand All @@ -68,7 +67,7 @@ void main() {
// Verify results are filtered
expect(find.descendant(of: modal, matching: find.text(l10n.c_ru_sbb_p)), findsNothing);
expect(find.descendant(of: modal, matching: find.text(l10n.c_ru_bls_p)), findsNothing);
expect(find.text(l10n.c_ru_sob), findsOneWidget);
expect(find.text(l10n.c_ru_sob_i), findsOneWidget);
});

testWidgets('test load button disabled when validation fails', (tester) async {
Expand Down
24 changes: 21 additions & 3 deletions das_client/app/l10n/strings_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,29 @@
"w_additional_speed_restriction_modal_table_label_from": "Von",
"w_additional_speed_restriction_modal_table_label_until": "Bis",
"w_additional_speed_restriction_modal_table_label_reason": "Grund",
"c_ru_sbb_p": "SBB",
"c_ru_sbb": "SBB AG",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hast du hier abgeklärt, wann welcher Text verwendet werden soll? Laut der Confluence-Seite sehe ich zumindest keine Logik, da manchmal Short Name oder Name oder ein Gemisch davon verwendet wird 😄

"c_ru_sbb_p": "SBB Personenverkehr",
"c_ru_sbb_epa": "SBB Voyageur (EPA)",
"c_ru_sbb_c": "SBB Cargo",
"c_ru_bls_p": "BLS",
"c_ru_sbbc_int": "SBB Cargo International",
"c_ru_sbb_d": "SBB GmbH Deutschland",
"c_ru_sbb_infra_baulog": "SBB Infrastruktur Baulogistik",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Keys sind etwas inkonsistent. Beispielsweise verwendet du für Infrastruktur manchmal infra oder i. Falls das keine offiziellen Abkürzungen sind, würde ich das vereinheitlichen.

"c_ru_sbb_infra_path": "SBB Infrastruktur PathOrderTool",
"c_ru_bls_n": "BLS Netz AG",
"c_ru_bls_p": "BLS Personenverkehr",
"c_ru_bls_nevu": "BLS Netz AG EVU",
"c_ru_bls_c": "BLS Cargo",
"c_ru_sob": "SOB",
"c_ru_sob_t": "SOB Transport EVU",
"c_ru_sob_i": "SOB Infrastruktur",
"c_ru_sob_iti": "SOB Infrastruktur TI",
"c_ru_thu": "Thurbo AG",
"c_ru_ra": "RegionAlps SA",
"c_ru_travys": "TRAVYS SA",
"c_ru_transn": "transN",
"c_ru_tpfinfra": "TPF Infra SA",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Würde die Keys gleich machen wie bei z.B. den anderen EVU (c_ru_sob_x, c_ru_sbb_x, c_ru_bls_x, ...), also c_ru_tpf_x.

"c_ru_tpftrafic": "TPF Trafic SA",
"c_ru_tmr": "TMR SA",
"c_ru_mbc": "MBC SA",
"c_unknown": "Unbekannt",
"c_train_number": "Zugnummer",
"c_today": "Heute",
Expand Down
48 changes: 42 additions & 6 deletions das_client/app/lib/extension/ru_extension.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,54 @@ import 'package:sfera/component.dart';

extension RuExtension on RailwayUndertaking {
String displayText(BuildContext context) => switch (this) {
RailwayUndertaking.sbbP => context.l10n.c_ru_sbb_p,
RailwayUndertaking.sbbC => context.l10n.c_ru_sbb_c,
RailwayUndertaking.blsN => context.l10n.c_ru_bls_n,
RailwayUndertaking.blsP => context.l10n.c_ru_bls_p,
RailwayUndertaking.blsNEvu => context.l10n.c_ru_bls_nevu,
RailwayUndertaking.blsC => context.l10n.c_ru_bls_c,
RailwayUndertaking.sob => context.l10n.c_ru_sob,
RailwayUndertaking.sbb => context.l10n.c_ru_sbb,
RailwayUndertaking.sbbP => context.l10n.c_ru_sbb_p,
RailwayUndertaking.sbbEPA => context.l10n.c_ru_sbb_epa,
RailwayUndertaking.sbbC => context.l10n.c_ru_sbb_c,
RailwayUndertaking.sbbCInt => context.l10n.c_ru_sbbc_int,
RailwayUndertaking.sbbD => context.l10n.c_ru_sbb_d,
RailwayUndertaking.sbbInfraBuildLog => context.l10n.c_ru_sbb_infra_baulog,
RailwayUndertaking.sbbInfraPath => context.l10n.c_ru_sbb_infra_path,
RailwayUndertaking.sobT => context.l10n.c_ru_sob_t,
RailwayUndertaking.sobI => context.l10n.c_ru_sob_i,
RailwayUndertaking.sobITi => context.l10n.c_ru_sob_iti,
RailwayUndertaking.thu => context.l10n.c_ru_thu,
RailwayUndertaking.ra => context.l10n.c_ru_ra,
RailwayUndertaking.travys => context.l10n.c_ru_travys,
RailwayUndertaking.transN => context.l10n.c_ru_transn,
RailwayUndertaking.tpfInfra => context.l10n.c_ru_tpfinfra,
RailwayUndertaking.tpfTrafic => context.l10n.c_ru_tpftrafic,
RailwayUndertaking.tmr => context.l10n.c_ru_tmr,
RailwayUndertaking.mbc => context.l10n.c_ru_mbc,
};

String localizedText(AppLocalizations localizations) => switch (this) {
RailwayUndertaking.sbbP => localizations.c_ru_sbb_p,
RailwayUndertaking.sbbC => localizations.c_ru_sbb_c,
RailwayUndertaking.blsN => localizations.c_ru_bls_n,
RailwayUndertaking.blsP => localizations.c_ru_bls_p,
RailwayUndertaking.blsNEvu => localizations.c_ru_bls_nevu,
RailwayUndertaking.blsC => localizations.c_ru_bls_c,
RailwayUndertaking.sob => localizations.c_ru_sob,
RailwayUndertaking.sbb => localizations.c_ru_sbb,
RailwayUndertaking.sbbP => localizations.c_ru_sbb_p,
RailwayUndertaking.sbbEPA => localizations.c_ru_sbb_epa,
RailwayUndertaking.sbbC => localizations.c_ru_sbb_c,
RailwayUndertaking.sbbCInt => localizations.c_ru_sbbc_int,
RailwayUndertaking.sbbD => localizations.c_ru_sbb_d,
RailwayUndertaking.sbbInfraBuildLog => localizations.c_ru_sbb_infra_baulog,
RailwayUndertaking.sbbInfraPath => localizations.c_ru_sbb_infra_path,
RailwayUndertaking.sobT => localizations.c_ru_sob_t,
RailwayUndertaking.sobI => localizations.c_ru_sob_i,
RailwayUndertaking.sobITi => localizations.c_ru_sob_iti,
RailwayUndertaking.thu => localizations.c_ru_thu,
RailwayUndertaking.ra => localizations.c_ru_ra,
RailwayUndertaking.travys => localizations.c_ru_travys,
RailwayUndertaking.transN => localizations.c_ru_transn,
RailwayUndertaking.tpfInfra => localizations.c_ru_tpfinfra,
RailwayUndertaking.tpfTrafic => localizations.c_ru_tpftrafic,
RailwayUndertaking.tmr => localizations.c_ru_tmr,
RailwayUndertaking.mbc => localizations.c_ru_mbc,
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,27 @@ class _RailwayUndertakingTextFieldState extends State<_RailwayUndertakingTextFie
hintText: widget.isModalVersion ? context.l10n.p_train_selection_ru_description : null,
),
onTap: () {
final radius = Radius.circular(16);
showModalBottomSheet(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wie besproche, clipBehavior von showModalBottomSheet verwenden :)

context: context,
isScrollControlled: true,
backgroundColor: _modalBackgroundColor(context),
shape: SelectRailwayUndertakingModal.shapeBorder,
constraints: _modalConstraints,
context: context,
builder: (_) => Provider.value(
value: context.read<JourneySelectionViewModel>(),
child: SelectRailwayUndertakingModal(selectedRailwayUndertaking: widget.selectedRailwayUndertaking),
builder: (_) => ClipRRect(
borderRadius: BorderRadius.only(
topLeft: radius,
topRight: radius,
),
child: Material(
color: _modalBackgroundColor(context),
child: Provider.value(
value: context.read<JourneySelectionViewModel>(),
child: SelectRailwayUndertakingModal(
selectedRailwayUndertaking: widget.selectedRailwayUndertaking,
),
),
),
),
);
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,16 @@ void main() {
// EXPECT
expect(
emitRegister,
orderedEquals([RailwayUndertaking.sbbC, RailwayUndertaking.sbbP]),
orderedEquals([
RailwayUndertaking.sbbC,
RailwayUndertaking.sbbP,
RailwayUndertaking.sbb,
RailwayUndertaking.sbbCInt,
RailwayUndertaking.sbbD,
RailwayUndertaking.sbbInfraBuildLog,
RailwayUndertaking.sbbInfraPath,
RailwayUndertaking.sbbEPA,
]),
);
});

Expand Down Expand Up @@ -139,7 +148,7 @@ void main() {

test('updateIsSelectingRailwayUndertaking_whenSetSelectedRuCalled_thenIsCalled', () {
// ARRANGE
final newRu = RailwayUndertaking.sob;
final newRu = RailwayUndertaking.sobT;
reset(mockUpdateAvailableRuFunction);

// ACT
Expand Down
24 changes: 21 additions & 3 deletions das_client/sfera/lib/src/model/ru.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
enum RailwayUndertaking {
sbbP(companyCode: '1185'),
sbbC(companyCode: '2185'),
blsN(companyCode: '0063'),
blsP(companyCode: '1163'),
blsNEvu(companyCode: '2263'),
blsC(companyCode: '3356'),
sob(companyCode: '5458');
sbb(companyCode: '1085'),
sbbP(companyCode: '1385'),
sbbEPA(companyCode: '1285'),
sbbC(companyCode: '2185'),
sbbCInt(companyCode: '2585'),
sbbD(companyCode: '5404'),
sbbInfraBuildLog(companyCode: '5184'),
sbbInfraPath(companyCode: '5186'),
sobT(companyCode: '5458'),
sobI(companyCode: '5459'),
sobITi(companyCode: '5460'),
thu(companyCode: '3917'),
ra(companyCode: '5680'),
travys(companyCode: '5227'),
transN(companyCode: '5244'),
tpfInfra(companyCode: '5234'),
tpfTrafic(companyCode: '5495'),
tmr(companyCode: '5429'),
mbc(companyCode: '5230');

const RailwayUndertaking({
required this.companyCode,
Expand Down
Loading