What every Halkyon server has, taken from Halkyon Learn's: anonymous, GitHub and email-code sign-in with their endpoints, an account's ways in and its deletion, the pruning of abandoned anonymous people, of sign-up attempts and of expired codes, and the instance's basics (the sign-in ways offered, the source link, the minimum app build, where people's data and its backups are). Endpoints sit under the nickname `base`. A host configures it in one place before its pod starts: its name for the mails, its source link, its minimum build, and hooks that delete its own data with a person. The tables keep Learn's names, columns and indexes, so a host moving onto the module migrates nothing but version rows. Server package under the SSPL, client under the AGPL, as Learn's are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
27 lines
678 B
Dart
27 lines
678 B
Dart
import 'package:test/test.dart';
|
|
|
|
import 'test_tools/serverpod_test_tools.dart';
|
|
|
|
void main() {
|
|
withServerpod('A host that never configured the module', (
|
|
sessionBuilder,
|
|
endpoints,
|
|
) {
|
|
test('is told so, rather than answering with defaults of no one', () async {
|
|
await expectLater(
|
|
endpoints.instance.basics(
|
|
sessionBuilder.copyWith(
|
|
authentication: AuthenticationOverride.unauthenticated(),
|
|
),
|
|
),
|
|
throwsA(
|
|
isA<StateError>().having(
|
|
(error) => error.message,
|
|
'message',
|
|
contains('HalkyonBase.configure'),
|
|
),
|
|
),
|
|
);
|
|
});
|
|
});
|
|
}
|