Restructure step 0 done: notice table test, flaky-link proxy, liveness on the engine clock, STARSYNC_PROFILE
- notice_table_test: one row per AppEvent variant through noticeFor. - FlakyProxy (core/testing.dart): pass, blackhole (half-open), delay, hold, cut after N bytes, reset; demo tests against today's server. - Liveness (stale/drop/ping) on the engine clock, so grace can be tested with a fake clock; Connection takes an injectable clock. - AppDirs with STARSYNC_PROFILE=<name>: separate data and logs, so two instances run on one machine. - DEVELOPMENT: scenario list per restructure step; test tags follow the new step order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
eac45746ce
commit
f4ca02c3cf
23 files changed
+959
-48
No files matched your search
@@ -0,0 +1,36 @@
|
||||
// restructure: rewrite in step R (Rename): Hive moves into the support
|
||||
// folder for the normal app too.
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:watch_together/src/platform/app_dirs.dart';
|
||||
|
||||
void main() {
|
||||
final sep = Platform.pathSeparator;
|
||||
const support = '/s';
|
||||
|
||||
test('no profile: today\'s layout', () {
|
||||
final d = AppDirs.fromEnv(support: support, env: const {});
|
||||
expect(d.profile, isNull);
|
||||
expect(d.hive, isNull, reason: "Hive's default folder");
|
||||
expect(d.logs, '$support${sep}logs');
|
||||
});
|
||||
|
||||
test('a profile gets its own Hive and logs folders', () {
|
||||
final d = AppDirs.fromEnv(support: support, env: const {profileEnv: 'b'});
|
||||
expect(d.profile, 'b');
|
||||
expect(d.hive, '$support${sep}profiles${sep}b${sep}hive');
|
||||
expect(d.logs, '$support${sep}profiles${sep}b${sep}logs');
|
||||
expect(d.support, support, reason: 'yt-dlp and shaders stay shared');
|
||||
});
|
||||
|
||||
test('an unusable name is ignored and reported', () {
|
||||
for (final bad in ['../x', 'a b', 'x' * 33, 'é']) {
|
||||
final env = {profileEnv: bad};
|
||||
expect(AppDirs.fromEnv(support: support, env: env).profile, isNull, reason: bad);
|
||||
expect(AppDirs.invalidProfile(env), bad);
|
||||
}
|
||||
expect(AppDirs.invalidProfile(const {profileEnv: ''}), isNull, reason: 'empty is just unset');
|
||||
expect(AppDirs.invalidProfile(const {profileEnv: 'ok_1-2'}), isNull);
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user