Rebrand to Lunaris and add CosBooru providers
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:gel_rule_app/backend/models/content_provider_config.dart';
|
||||
import 'package:gel_rule_app/backend/models/post.dart';
|
||||
import 'package:gel_rule_app/backend/repositories/collection_repository.dart';
|
||||
import 'package:gel_rule_app/backend/repositories/favorite_repository.dart';
|
||||
@@ -73,11 +74,52 @@ void main() {
|
||||
'e621',
|
||||
'e926',
|
||||
'realbooru',
|
||||
'xbooru',
|
||||
'cosbooru',
|
||||
]);
|
||||
expect(
|
||||
providers.singleWhere((provider) => provider.id == 'realbooru').enabled,
|
||||
isFalse,
|
||||
);
|
||||
expect(
|
||||
providers.singleWhere((provider) => provider.id == 'cosbooru').enabled,
|
||||
isTrue,
|
||||
);
|
||||
final xbooru = providers.singleWhere((provider) => provider.id == 'xbooru');
|
||||
expect(xbooru.enabled, isTrue);
|
||||
expect(xbooru.baseUrl, 'https://xbooru.com');
|
||||
expect(xbooru.apiType, 'gelbooru');
|
||||
final cosbooru =
|
||||
providers.singleWhere((provider) => provider.id == 'cosbooru');
|
||||
expect(cosbooru.baseUrl, 'https://cos.lycore.co');
|
||||
expect(cosbooru.apiType, 'danbooru');
|
||||
});
|
||||
|
||||
test('provider repository migrates old CosBooru config', () async {
|
||||
final repository = ProviderRepository(databaseService);
|
||||
final now = DateTime(2026);
|
||||
await repository.saveProvider(ContentProviderConfig(
|
||||
id: 'cosbooru',
|
||||
name: 'CosBooru',
|
||||
baseUrl: 'https://cos.booru.nl',
|
||||
apiType: 'gelbooru',
|
||||
enabled: false,
|
||||
priority: 99,
|
||||
timeoutSeconds: 10,
|
||||
customHeaders: const {},
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
));
|
||||
|
||||
await repository.ensureSeedProviders();
|
||||
final providers = (await repository.getProviders() as Success).data;
|
||||
final cosbooru =
|
||||
providers.singleWhere((provider) => provider.id == 'cosbooru');
|
||||
|
||||
expect(cosbooru.baseUrl, 'https://cos.lycore.co');
|
||||
expect(cosbooru.apiType, 'danbooru');
|
||||
expect(cosbooru.enabled, isTrue);
|
||||
expect(cosbooru.priority, 9);
|
||||
});
|
||||
|
||||
test('settings saveEnabledProviders updates provider configs', () async {
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:gel_rule_app/backend/mappers/gelbooru_mapper.dart';
|
||||
import 'package:gel_rule_app/backend/mappers/moebooru_mapper.dart';
|
||||
import 'package:gel_rule_app/backend/mappers/rule34_mapper.dart';
|
||||
import 'package:gel_rule_app/backend/models/content_provider_config.dart';
|
||||
import 'package:gel_rule_app/backend/providers/danbooru_provider.dart';
|
||||
import 'package:gel_rule_app/backend/providers/provider_factory.dart';
|
||||
import 'package:gel_rule_app/backend/providers/realbooru_provider.dart';
|
||||
import 'package:gel_rule_app/backend/repositories/provider_repository.dart';
|
||||
@@ -205,7 +206,7 @@ void main() {
|
||||
expect(posts.single.rating, 'unknown');
|
||||
});
|
||||
|
||||
test('seed providers include enabled Realbooru', () {
|
||||
test('seed providers include CosBooru and no Paheal', () {
|
||||
final realbooru = ProviderRepository.seedProviders()
|
||||
.where((provider) => provider.id == 'realbooru')
|
||||
.single;
|
||||
@@ -213,6 +214,23 @@ void main() {
|
||||
expect(realbooru.enabled, isFalse);
|
||||
expect(realbooru.apiType, 'realbooru');
|
||||
expect(realbooru.baseUrl, 'https://realbooru.com');
|
||||
expect(
|
||||
ProviderRepository.seedProviders()
|
||||
.where((provider) => provider.id == 'paheal'),
|
||||
isEmpty,
|
||||
);
|
||||
final cosbooru = ProviderRepository.seedProviders()
|
||||
.where((provider) => provider.id == 'cosbooru')
|
||||
.single;
|
||||
final xbooru = ProviderRepository.seedProviders()
|
||||
.where((provider) => provider.id == 'xbooru')
|
||||
.single;
|
||||
expect(xbooru.enabled, isTrue);
|
||||
expect(xbooru.apiType, 'gelbooru');
|
||||
expect(xbooru.baseUrl, 'https://xbooru.com');
|
||||
expect(cosbooru.enabled, isTrue);
|
||||
expect(cosbooru.apiType, 'danbooru');
|
||||
expect(cosbooru.baseUrl, 'https://cos.lycore.co');
|
||||
});
|
||||
|
||||
test('provider factory creates Realbooru provider', () {
|
||||
@@ -232,4 +250,22 @@ void main() {
|
||||
|
||||
expect(provider, isA<RealbooruProvider>());
|
||||
});
|
||||
|
||||
test('provider factory creates CosBooru as Danbooru provider', () {
|
||||
final now = DateTime(2026);
|
||||
final provider = ProviderFactory().create(ContentProviderConfig(
|
||||
id: 'cosbooru',
|
||||
name: 'CosBooru',
|
||||
baseUrl: 'https://cos.lycore.co',
|
||||
apiType: 'danbooru',
|
||||
enabled: true,
|
||||
priority: 8,
|
||||
timeoutSeconds: 20,
|
||||
customHeaders: const {},
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
));
|
||||
|
||||
expect(provider, isA<DanbooruProvider>());
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user