83 lines
2.4 KiB
Dart
83 lines
2.4 KiB
Dart
import 'package:test/test.dart';
|
|
import 'package:yx_icon_fonts/yx_icon_fonts.dart';
|
|
|
|
void main() {
|
|
group('StringHelper', () {
|
|
test('toCamelCase converts underscore to camelCase', () {
|
|
expect(StringHelper.toCamelCase('icon_32_clean'), equals('icon32Clean'));
|
|
expect(
|
|
StringHelper.toCamelCase('icon_msg_contacts'),
|
|
equals('iconMsgContacts'),
|
|
);
|
|
});
|
|
|
|
test('toLegalDartName handles numeric prefix', () {
|
|
expect(StringHelper.toLegalDartName('32_icon'), equals('_32Icon'));
|
|
});
|
|
|
|
test('toPascalCase converts to PascalCase', () {
|
|
expect(StringHelper.toPascalCase('icon_class'), equals('IconClass'));
|
|
});
|
|
});
|
|
|
|
group('GeneratorConfig', () {
|
|
test('fromMap creates config from map', () {
|
|
final map = {
|
|
'generator': {'name': 'Test'},
|
|
'input': {
|
|
'font_file': 'test.ttf',
|
|
'json_file': 'test.json',
|
|
'font_family': 'test',
|
|
},
|
|
'output': {
|
|
'file_path': 'lib/icons.dart',
|
|
'class_name': 'TestIcons',
|
|
},
|
|
};
|
|
|
|
final config = GeneratorConfig.fromMap(map);
|
|
|
|
expect(config.generator.name, equals('Test'));
|
|
expect(config.input.fontFile, equals('test.ttf'));
|
|
expect(config.input.jsonFile, equals('test.json'));
|
|
expect(config.output.filePath, equals('lib/icons.dart'));
|
|
expect(config.output.className, equals('TestIcons'));
|
|
});
|
|
|
|
test('defaults creates default config', () {
|
|
final config = GeneratorConfig.defaults();
|
|
|
|
expect(config.input.fontFamily, equals('iconfont'));
|
|
expect(config.output.className, equals('AppIcons'));
|
|
expect(config.output.generateDocs, isTrue);
|
|
});
|
|
});
|
|
|
|
group('IconParser', () {
|
|
test('parseMap parses icon font metadata', () {
|
|
final jsonData = {
|
|
'id': '123',
|
|
'name': 'Test Font',
|
|
'font_family': 'testfont',
|
|
'glyphs': [
|
|
{
|
|
'icon_id': '1',
|
|
'name': 'icon_test',
|
|
'font_class': 'icon_test',
|
|
'unicode': 'e600',
|
|
'unicode_decimal': 58880,
|
|
},
|
|
],
|
|
};
|
|
|
|
final meta = IconParser.parseMap(jsonData);
|
|
|
|
expect(meta.name, equals('Test Font'));
|
|
expect(meta.fontFamily, equals('testfont'));
|
|
expect(meta.icons.length, equals(1));
|
|
expect(meta.icons.first.name, equals('icon_test'));
|
|
expect(meta.icons.first.unicode, equals('e600'));
|
|
});
|
|
});
|
|
}
|