| // Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:test/test.dart'; |
| |
| import '../../../tool/lsp_spec/typescript_parser.dart' as ast; |
| |
| main() { |
| group('dartType mapping', () { |
| test('handles basic types', () { |
| expect(_simple('string').dartType, equals('String')); |
| expect(_simple('boolean').dartType, equals('bool')); |
| expect(_simple('any').dartType, equals('dynamic')); |
| expect(_simple('object').dartType, equals('dynamic')); |
| expect(_simple('int').dartType, equals('int')); |
| expect(_simple('num').dartType, equals('num')); |
| }); |
| |
| test('handles union types', () { |
| expect(_union(['string', 'int']).dartTypeWithTypeArgs, |
| equals('Either2<String, int>')); |
| }); |
| |
| test('handles arrays', () { |
| expect(_array('string').dartTypeWithTypeArgs, equals('List<String>')); |
| }); |
| }); |
| } |
| |
| ast.Type _simple(String name) => |
| new ast.Type(new ast.Token(ast.TokenType.IDENTIFIER, name), []); |
| |
| ast.ArrayType _array(String name) => new ast.ArrayType(_simple(name)); |
| |
| ast.UnionType _union(List<String> names) => |
| new ast.UnionType(names.map(_simple).toList()); |