Go to file
Tobias Bosch c79f0c3472 refactor: simplify and make tests work in JS and Dart
* 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
2014-09-28 21:50:38 -07:00
modules refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
tools/transpiler refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
.gitignore chore: update .gitignore for web-storm 2014-09-26 09:03:37 -07:00
LICENSE Initial commit 2014-09-18 09:12:01 -07:00
README.md refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
TODO.md refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
file2modulename.js refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
gulpfile.js refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
karma-dart.conf.js refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
karma-js.conf.js refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
package.json chore: karma with JS, Dart 2014-09-26 16:53:54 -07:00
pubspec.yaml refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
test-main.dart refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00
test-main.js refactor: simplify and make tests work in JS and Dart 2014-09-28 21:50:38 -07:00

README.md

Build

Prerequisites:

  1. npm install
  2. pub get
  3. install -g gulp
  4. install -g karma

Folder structure

  • modules/*: modules that will be loaded in the browser
  • tools/*: tools that are needed to build Angular

File endings

  • *.js: javascript files that get transpiled to Dart and EcmaScript 5
  • *.es6: javascript files that get transpiled only to EcmaScript 5
  • *.es5: javascript files that don't get transpiled
  • *.dart: dart files that don't get transpiled

Build:

  1. gulp build -> result is in build folder
  • will also to pubg get for the subfolders in modules and run dartanalyzer for every file that matches <module>/src/<module>.dart, e.g. di/src/di.dart
  1. gulp clean -> cleans the build folder

Tests:

  1. karma start karma-js.conf.js: JS tests
  2. karma start karma-dart.conf.js: JS tests

Notes for all tests:

The karma preprocessor is setup in a way so that after every test run the transpiler is reloaded. With that it is possible to make changes to the preprocessor and run the tests without exiting karma (just touch a test file that you would like to run).

Restriction for Dart tests (for now):

  • Due to a bug karma-dart plugin, this will use the files in the build folder for resolving package: dependencies (created e.g. for import ... from 'di:di'). So you need to execute gulp build before this.