* remove `wraps` syntax enhancements for imports
and support new `import * as module from ...` syntax
- default imports are the wrong construct for importing
everything from a module
* moved tests from transpiler to jasmine and karma
- transpiler tests are included when running karma in main project folder
- transpiler is reloaded after every test run in karma,
so no need to restart karma when the transpiler has been changed.
- removed own gulp build for transpiler and `postinstall.sh`
as they are no more needed.
- transpiler tests are now executed in Dart AND JavaScript (used to be executed
only in Dart), which allowed to catch some bugs (see the bug with the
import specification above).
* made tests work in dart as well by using the following hack:
- dependencies are loaded from the `build` folder, which makes
running `gulp build` necessary before running karma for dart
- for this to work,
the dependencies are included in main `pubspec.yaml` of project
- reason for the hack: `karma-dart` loads all `packages` urls
directly from disc (should rather use the karma file list)
* added explicit annotations `FIELD`, `ABSTRACT`, ... to `facade/lang.*`
- needed for now that we can run tests and don't get errors for undefined
annotations.
* added `README.md` with details about the build and tests
26 lines
573 B
JavaScript
26 lines
573 B
JavaScript
import {describe, it, expect} from 'test_lib/test_lib';
|
|
import {Provide, readFirstAnnotation} from './fixtures/annotations';
|
|
|
|
class Inject {}
|
|
class Bar {}
|
|
|
|
@Provide('Foo')
|
|
class Foo {
|
|
@Inject
|
|
constructor() {}
|
|
}
|
|
|
|
@Provide(Foo)
|
|
function baz() {}
|
|
|
|
function annotatedParams(@Inject(Foo) f, @Inject(Bar) b) {}
|
|
|
|
export function main() {
|
|
describe('annotations', function() {
|
|
it('should work', function() {
|
|
// Assert `Foo` class has `Provide` annotation.
|
|
var clazz = readFirstAnnotation(Foo);
|
|
expect(clazz instanceof Provide).toBe(true);
|
|
});
|
|
});
|
|
} |