Une toolchain Swift sur Linux, pour ne plus ecrire de dates a l'aveugle
J'ai ecrit `asOf(_:)` hier sans pouvoir le compiler. Swift 6.3 est desormais
installe sur la machine de dev (Debian 12 x86_64) et `tests-linux/` compile
et teste la logique PURE des widgets.
10 tests, dont 5 verifies rouges en neutralisant la peremption. Ils couvrent
la remise a zero, la conservation des objectifs et des zones, le report de la
seance du lendemain, et le passage a l'heure d'hiver du 25 octobre — ou un
`+86400` naif ferait basculer le widget une heure trop tot, la veille au soir.
Les sources du paquet sont des liens symboliques vers les vrais fichiers : le
test porte sur le code livre, pas sur une copie.
⚠️ Ne remplace PAS le build Xcode et ne le remplacera jamais : WidgetKit,
SwiftUI, HealthKit et WatchKit sont absents de Swift pour Linux. Ni l'app, ni
les widgets, ni les vues ne se compilent ici.
This commit is contained in:
1
tests-linux/Sources/CoachModel/CoachQuickLog.swift
Symbolic link
1
tests-linux/Sources/CoachModel/CoachQuickLog.swift
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../ios/App/App/CoachQuickLog.swift
|
||||
1
tests-linux/Sources/CoachModel/CoachWidgetSnapshot.swift
Symbolic link
1
tests-linux/Sources/CoachModel/CoachWidgetSnapshot.swift
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../ios/App/App/CoachWidgetSnapshot.swift
|
||||
21
tests-linux/Sources/CoachModel/HeartRateZonesStub.swift
Normal file
21
tests-linux/Sources/CoachModel/HeartRateZonesStub.swift
Normal file
@@ -0,0 +1,21 @@
|
||||
// DOUBLURE DE TEST — n'existe que dans le banc d'essai Linux.
|
||||
//
|
||||
// Le vrai `HeartRateZones` (ios/App/App/HeartRateZones.swift) expose une
|
||||
// propriété `color: Color` et importe donc SwiftUI, absent sur Linux.
|
||||
//
|
||||
// ⚠️ La doublure ne reproduit que les propriétés STOCKÉES, à l'identique : le
|
||||
// seul usage qu'en fait `CoachWidgetSnapshot` est de les porter et de les
|
||||
// (dé)coder. `asOf(_:)` ne fait que recopier le champ sans le lire. Si un jour
|
||||
// la péremption devait TOUCHER aux zones, ce test cesserait d'être pertinent —
|
||||
// et c'est écrit ici pour qu'on s'en aperçoive.
|
||||
import Foundation
|
||||
|
||||
struct HeartRateZones: Codable, Equatable, Sendable {
|
||||
var z1: [Int]?
|
||||
var z2: [Int]?
|
||||
var z3: [Int]?
|
||||
var z4: [Int]?
|
||||
var z5: [Int]?
|
||||
var fcmaxUsed: Int?
|
||||
var clinicalTargetBpm: Int?
|
||||
}
|
||||
Reference in New Issue
Block a user