yx_icon_fonts_flutter/test/yx_icon_fonts_test.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'));
});
});
}