Initial commit: CleanPlate shared Dart package

Domain models, enums, constants, validators shared between frontend and backend.
This commit is contained in:
Oracle Public Cloud User
2026-03-04 14:51:14 +00:00
commit b96a05ec32
34 changed files with 1174 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
import 'package:cleanplate_shared/cleanplate_shared.dart';
import 'package:test/test.dart';
void main() {
group('RecipeValidator', () {
test('validateTitle returns null for valid title', () {
expect(RecipeValidator.validateTitle('My Recipe'), isNull);
});
test('validateTitle returns error for empty title', () {
expect(RecipeValidator.validateTitle(''), isNotNull);
});
test('validateServings returns null for valid servings', () {
expect(RecipeValidator.validateServings(4), isNull);
});
test('validateServings returns error for zero servings', () {
expect(RecipeValidator.validateServings(0), isNotNull);
});
test('validateRating returns null for valid rating', () {
expect(RecipeValidator.validateRating(5), isNull);
});
test('validateRating returns error for out-of-range rating', () {
expect(RecipeValidator.validateRating(6), isNotNull);
});
});
group('DietType', () {
test('displayName returns correct value', () {
expect(DietType.vegan.displayName, equals('Vegan'));
});
});
group('ApiConstants', () {
test('basePath includes version', () {
expect(ApiConstants.basePath, equals('/api/v1'));
});
test('recipe path includes id', () {
expect(ApiConstants.recipe('abc'), equals('/api/v1/recipes/abc'));
});
});
}