mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 10:49:49 +08:00
111 lines
3.3 KiB
Dart
111 lines
3.3 KiB
Dart
import 'dart:convert';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:genai/models/model_config_value.dart';
|
|
|
|
void main() {
|
|
group('ConfigType Enum', () {
|
|
test('getConfigTypeEnum returns correct enum', () {
|
|
expect(getConfigTypeEnum('boolean'), ConfigType.boolean);
|
|
expect(getConfigTypeEnum('slider'), ConfigType.slider);
|
|
expect(getConfigTypeEnum('numeric'), ConfigType.numeric);
|
|
expect(getConfigTypeEnum('text'), ConfigType.text);
|
|
});
|
|
|
|
test('getConfigTypeEnum falls back to text on invalid', () {
|
|
expect(getConfigTypeEnum('does_not_exist'), ConfigType.text);
|
|
expect(getConfigTypeEnum(null), ConfigType.text);
|
|
});
|
|
});
|
|
|
|
group('ConfigBooleanValue', () {
|
|
test('serialize and deserialize works', () {
|
|
final value = ConfigBooleanValue(value: true);
|
|
final serialized = value.serialize();
|
|
expect(serialized, 'true');
|
|
|
|
final deserialized = ConfigBooleanValue.deserialize(serialized);
|
|
expect(deserialized.value, true);
|
|
});
|
|
});
|
|
|
|
group('ConfigNumericValue', () {
|
|
test('serialize and deserialize works', () {
|
|
final value = ConfigNumericValue(value: 42);
|
|
final serialized = value.serialize();
|
|
expect(serialized, '42');
|
|
|
|
final deserialized = ConfigNumericValue.deserialize('42');
|
|
expect(deserialized.value, 42);
|
|
|
|
final nullValue = ConfigNumericValue.deserialize('not_a_number');
|
|
expect(nullValue.value, null);
|
|
});
|
|
});
|
|
|
|
group('ConfigSliderValue', () {
|
|
test('serialize and deserialize works', () {
|
|
final value = ConfigSliderValue(value: (0.0, 0.5, 1.0));
|
|
final serialized = value.serialize();
|
|
expect(serialized, jsonEncode([0.0, 0.5, 1.0]));
|
|
|
|
final deserialized = ConfigSliderValue.deserialize(serialized);
|
|
expect(deserialized.value, (0.0, 0.5, 1.0));
|
|
});
|
|
|
|
test('getPayloadValue returns middle element', () {
|
|
final slider = ConfigSliderValue(value: (0.0, 0.5, 1.0));
|
|
expect(slider.getPayloadValue(), 0.5);
|
|
});
|
|
});
|
|
|
|
group('ConfigTextValue', () {
|
|
test('serialize and deserialize works', () {
|
|
final value = ConfigTextValue(value: 'hello');
|
|
final serialized = value.serialize();
|
|
expect(serialized, 'hello');
|
|
|
|
final deserialized = ConfigTextValue.deserialize('world');
|
|
expect(deserialized.value, 'world');
|
|
});
|
|
});
|
|
|
|
group('checkTypeValue', () {
|
|
test('validates correct type/value matches', () {
|
|
expect(
|
|
checkTypeValue(ConfigType.boolean, ConfigBooleanValue(value: true)),
|
|
true,
|
|
);
|
|
expect(
|
|
checkTypeValue(ConfigType.numeric, ConfigNumericValue(value: 3)),
|
|
true,
|
|
);
|
|
expect(
|
|
checkTypeValue(
|
|
ConfigType.slider,
|
|
ConfigSliderValue(value: (0, 0.5, 1)),
|
|
),
|
|
true,
|
|
);
|
|
expect(
|
|
checkTypeValue(ConfigType.text, ConfigTextValue(value: 'hi')),
|
|
true,
|
|
);
|
|
});
|
|
|
|
test('returns false for mismatched type/value', () {
|
|
expect(
|
|
checkTypeValue(ConfigType.boolean, ConfigNumericValue(value: 1)),
|
|
false,
|
|
);
|
|
expect(
|
|
checkTypeValue(ConfigType.numeric, ConfigTextValue(value: 'x')),
|
|
false,
|
|
);
|
|
expect(
|
|
checkTypeValue(ConfigType.slider, ConfigBooleanValue(value: true)),
|
|
false,
|
|
);
|
|
});
|
|
});
|
|
}
|