From 9c5eb79941f9aa30df8d9f9257da3ab35c0cdc0a Mon Sep 17 00:00:00 2001 From: ABNER SILVA DE OLIVEIRA Date: Wed, 2 Mar 2016 20:06:47 -0300 Subject: [PATCH] added script to generate module indexes --- .vscode/launch.json | 35 +++++++++++++++++++++++++++++++++++ dev-scripts/generate-index-modules.ts | 33 +++++++++++++++++++++++++++++++++ dev-scripts/node_modules | 1 + dev-scripts/tsconfig.json | 13 +++++++++++++ dev-scripts/typings.json | 9 +++++++++ package.json | 4 +++- src/app/cms/index.ts | 2 ++ src/app/components/auth/auth_controller.spec.ts | 27 +++++++++++++++++++++++++++ src/app/components/auth/index.ts | 5 +++++ src/app/components/index.ts | 1 + src/app/components/navbar/index.ts | 1 + src/app/components/noosfero-activities/activity/index.ts | 1 + src/app/components/noosfero-activities/index.ts | 1 + src/app/components/noosfero-articles/article/article_view.spec.ts | 15 ++++++--------- src/app/components/noosfero-articles/article/index.ts | 2 ++ src/app/components/noosfero-articles/blog/index.ts | 2 ++ src/app/components/noosfero-articles/index.ts | 1 + src/app/components/noosfero-blocks/index.ts | 2 ++ src/app/components/noosfero-blocks/link-list/index.ts | 1 + src/app/components/noosfero-blocks/main-block/index.ts | 1 + src/app/components/noosfero-blocks/members-block/index.ts | 1 + src/app/components/noosfero-blocks/profile-image/index.ts | 1 + src/app/components/noosfero-blocks/recent-documents/index.ts | 1 + src/app/components/noosfero-boxes/index.ts | 2 ++ src/app/components/noosfero/index.ts | 1 + src/app/components/noosfero/profile-image/index.ts | 1 + src/app/content-viewer/index.ts | 3 +++ src/app/main/index.ts | 2 ++ src/app/models/index.ts | 2 ++ src/app/profile-info/index.ts | 2 ++ src/app/profile/index.ts | 3 +++ src/spec/helpers.ts | 31 +++++++++++++++++++++++++++++++ tsconfig.json | 1 + 33 files changed, 198 insertions(+), 10 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 dev-scripts/generate-index-modules.ts create mode 120000 dev-scripts/node_modules create mode 100644 dev-scripts/tsconfig.json create mode 100644 dev-scripts/typings.json create mode 100644 src/app/cms/index.ts create mode 100644 src/app/components/auth/auth_controller.spec.ts create mode 100644 src/app/components/auth/index.ts create mode 100644 src/app/components/index.ts create mode 100644 src/app/components/navbar/index.ts create mode 100644 src/app/components/noosfero-activities/activity/index.ts create mode 100644 src/app/components/noosfero-activities/index.ts create mode 100644 src/app/components/noosfero-articles/article/index.ts create mode 100644 src/app/components/noosfero-articles/blog/index.ts create mode 100644 src/app/components/noosfero-articles/index.ts create mode 100644 src/app/components/noosfero-blocks/index.ts create mode 100644 src/app/components/noosfero-blocks/link-list/index.ts create mode 100644 src/app/components/noosfero-blocks/main-block/index.ts create mode 100644 src/app/components/noosfero-blocks/members-block/index.ts create mode 100644 src/app/components/noosfero-blocks/profile-image/index.ts create mode 100644 src/app/components/noosfero-blocks/recent-documents/index.ts create mode 100644 src/app/components/noosfero-boxes/index.ts create mode 100644 src/app/components/noosfero/index.ts create mode 100644 src/app/components/noosfero/profile-image/index.ts create mode 100644 src/app/content-viewer/index.ts create mode 100644 src/app/main/index.ts create mode 100644 src/app/models/index.ts create mode 100644 src/app/profile-info/index.ts create mode 100644 src/app/profile/index.ts create mode 100644 src/spec/helpers.ts diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..1188679 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch index.html", + "type": "chrome", + "request": "launch", + "file": "index.html" + }, + { + "name": "Launch Noosfero NG", + "type": "chrome", + "request": "launch", + "sourceMaps": true, + "webRoot": "src/app", + "url": "http://localhost:3001/" + }, + { + "name": "Launch localhost with sourcemaps", + "type": "chrome", + "request": "launch", + "url": "http://localhost/mypage.html", + "sourceMaps": true, + "webRoot": "wwwroot" + }, + { + "name": "Attach", + "type": "chrome", + "request": "attach", + "sourceMaps": true, + "webRoot": "./", + "port": 9222 + } + ] +} \ No newline at end of file diff --git a/dev-scripts/generate-index-modules.ts b/dev-scripts/generate-index-modules.ts new file mode 100644 index 0000000..3b52b34 --- /dev/null +++ b/dev-scripts/generate-index-modules.ts @@ -0,0 +1,33 @@ +import * as glob from "glob"; +import * as path from "path"; +import * as fs from "fs"; +let directories = glob.sync("./src/app/**/**/"); + +// maps to absolute path +directories = directories.map((directory: string) => { + return path.resolve(__dirname, "..", directory); +}); + +// iterate to generate the index folders +directories.forEach((directory: string) => { + // skips the app directory + if (!/\/app$/.test(directory)) { + let current_files = glob.sync("./*.ts", { nodir: true, cwd: directory, ignore: ['./index.ts', './*.spec.ts'] }); + console.log("DIRECTORY: ", directory); + console.log("FILES: ", current_files); + + let indexPath = path.join(directory, "index.ts"); + + let index_ts_content: string = "/* Module Index Entry - generated using the script npm run generate-index */\n"; + + let exports_content = current_files.map((file) => { + return `export * from "./${path.basename(file, ".ts")}";\n`; + }); + + fs.writeFileSync(indexPath, index_ts_content + exports_content.join("")); + + } + + + +}); diff --git a/dev-scripts/node_modules b/dev-scripts/node_modules new file mode 120000 index 0000000..68a084a --- /dev/null +++ b/dev-scripts/node_modules @@ -0,0 +1 @@ +../node_modules \ No newline at end of file diff --git a/dev-scripts/tsconfig.json b/dev-scripts/tsconfig.json new file mode 100644 index 0000000..6e593a8 --- /dev/null +++ b/dev-scripts/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "noImplicitAny": false, + "sourceMap": true + }, + "exclude": [ + "node_modules", + "typings/browser", + "typings/browser.d.ts" + ] +} \ No newline at end of file diff --git a/dev-scripts/typings.json b/dev-scripts/typings.json new file mode 100644 index 0000000..fcd57a9 --- /dev/null +++ b/dev-scripts/typings.json @@ -0,0 +1,9 @@ +{ + "dependencies": {}, + "devDependencies": {}, + "ambientDependencies": { + "glob": "github:DefinitelyTyped/DefinitelyTyped/glob/glob.d.ts#a14d724826174d1669d4df04c80f4838b7e71fdf", + "minimatch": "github:DefinitelyTyped/DefinitelyTyped/minimatch/minimatch.d.ts#a3900b896f7b3361b79f9b503224777619907d53", + "node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#48c1e3c1d6baefa4f1a126f188c27c4fefd36bff" + } +} diff --git a/package.json b/package.json index 67e0f52..2b4cdad 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "scripts": { "test": "concurrently \"webpack -w\" \"karma start\"", "postinstall": "npm install -g bower && bower install", - "start": "concurrently \"webpack -w\" \"gulp serve\"" + "start": "concurrently \"webpack -w\" \"gulp serve\"", + "generate-indexes": "ts-node --project ./dev-scripts ./dev-scripts/generate-index-modules.ts" }, "devDependencies": { "browser-sync": "~2.9.11", @@ -65,6 +66,7 @@ "phantomjs-polyfill": "0.0.2", "reflect-metadata": "^0.1.3", "ts-loader": "^0.8.1", + "ts-node": "^0.5.5", "typescript": "^1.8.2", "typings": "^0.6.8", "uglify-save-license": "~0.4.1", diff --git a/src/app/cms/index.ts b/src/app/cms/index.ts new file mode 100644 index 0000000..2ee57fe --- /dev/null +++ b/src/app/cms/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./cms.component"; diff --git a/src/app/components/auth/auth_controller.spec.ts b/src/app/components/auth/auth_controller.spec.ts new file mode 100644 index 0000000..ab31e0e --- /dev/null +++ b/src/app/components/auth/auth_controller.spec.ts @@ -0,0 +1,27 @@ +import {AuthController} from "./auth_controller"; +import {AuthService} from "./auth_service"; + +describe("AuthController", () => { + + it("calls authenticate on AuthService when login called", () => { + + // creating a Mock AuthService + let AuthServiceMock: AuthService = jasmine.createSpyObj("AuthService", ["login"]); + + // pass AuthServiceMock into the constructor + let authController = new AuthController(null, null, null, AuthServiceMock); + + // setup of authController -> set the credentials instance property + let credentials = { username: "username", password: "password" }; + + authController.credentials = credentials; + + // calls the authController login method + authController.login(); + + // checks if the method login of the injected AuthService has been called + expect(AuthServiceMock.login).toHaveBeenCalledWith(credentials); + + }); + +}); diff --git a/src/app/components/auth/index.ts b/src/app/components/auth/index.ts new file mode 100644 index 0000000..0f76efa --- /dev/null +++ b/src/app/components/auth/index.ts @@ -0,0 +1,5 @@ +/* Module Index Entry - generated using the script npm run generate-indexes */ +export * from "./auth_controller"; +export * from "./auth_events"; +export * from "./auth_service"; +export * from "./session"; diff --git a/src/app/components/index.ts b/src/app/components/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/navbar/index.ts b/src/app/components/navbar/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/navbar/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-activities/activity/index.ts b/src/app/components/noosfero-activities/activity/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-activities/activity/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-activities/index.ts b/src/app/components/noosfero-activities/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-activities/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-articles/article/article_view.spec.ts b/src/app/components/noosfero-articles/article/article_view.spec.ts index 7f27b15..9e2b9c7 100644 --- a/src/app/components/noosfero-articles/article/article_view.spec.ts +++ b/src/app/components/noosfero-articles/article/article_view.spec.ts @@ -1,11 +1,8 @@ -import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder'; -import {Input, provide, Component} from 'ng-forward'; +import {Input, provide, Component} from 'ng-forward'; import {ArticleView, ArticleDefaultView} from './article_view'; -// Instantiate the Builder, this part is different than ng2. -// In ng2 you inject tcb. -const tcb = new TestComponentBuilder(); +import {createComponentFromClass, quickCreateComponent} from "../../../../spec/helpers.ts"; // this htmlTemplate will be re-used between the container components in this spec file const htmlTemplate: string = ''; @@ -30,8 +27,7 @@ describe("ArticleView Component", () => { } } - // uses the TestComponentBuilder instance to initialize the component - tcb.createAsync(ArticleContainerComponent).then((fixture) => { + createComponentFromClass(ArticleContainerComponent).then((fixture) => { // and here we can inspect and run the test assertions // gets the children component of ArticleContainerComponent @@ -46,6 +42,7 @@ describe("ArticleView Component", () => { // here is write tests in angular 2 ways, this is recommended done(); }); + }); it("receives the article and profile as inputs", (done: Function) => { @@ -61,7 +58,7 @@ describe("ArticleView Component", () => { } // uses the TestComponentBuilder instance to initialize the component - tcb.createAsync(ArticleContainerComponent).then((fixture) => { + createComponentFromClass(ArticleContainerComponent).then((fixture) => { // and here we can inspect and run the test assertions let articleView: ArticleView = fixture.debugElement.componentViewChildren[0].componentInstance; @@ -97,7 +94,7 @@ describe("ArticleView Component", () => { constructor() { } } - tcb.createAsync(CustomArticleType).then(fixture => { + createComponentFromClass(CustomArticleType).then(fixture => { let myComponent: CustomArticleType = fixture.componentInstance; expect(myComponent.article.type).toEqual("TinyMceArticle"); expect(fixture.debugElement.componentViewChildren[0].text()).toEqual("TinyMceArticle"); diff --git a/src/app/components/noosfero-articles/article/index.ts b/src/app/components/noosfero-articles/article/index.ts new file mode 100644 index 0000000..deea325 --- /dev/null +++ b/src/app/components/noosfero-articles/article/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./article_view"; diff --git a/src/app/components/noosfero-articles/blog/index.ts b/src/app/components/noosfero-articles/blog/index.ts new file mode 100644 index 0000000..5436e7c --- /dev/null +++ b/src/app/components/noosfero-articles/blog/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./blog.component"; diff --git a/src/app/components/noosfero-articles/index.ts b/src/app/components/noosfero-articles/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-articles/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-blocks/index.ts b/src/app/components/noosfero-blocks/index.ts new file mode 100644 index 0000000..3f70547 --- /dev/null +++ b/src/app/components/noosfero-blocks/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./block.component"; diff --git a/src/app/components/noosfero-blocks/link-list/index.ts b/src/app/components/noosfero-blocks/link-list/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-blocks/link-list/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-blocks/main-block/index.ts b/src/app/components/noosfero-blocks/main-block/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-blocks/main-block/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-blocks/members-block/index.ts b/src/app/components/noosfero-blocks/members-block/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-blocks/members-block/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-blocks/profile-image/index.ts b/src/app/components/noosfero-blocks/profile-image/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-blocks/profile-image/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-blocks/recent-documents/index.ts b/src/app/components/noosfero-blocks/recent-documents/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero-blocks/recent-documents/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero-boxes/index.ts b/src/app/components/noosfero-boxes/index.ts new file mode 100644 index 0000000..6369864 --- /dev/null +++ b/src/app/components/noosfero-boxes/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./boxes.component"; diff --git a/src/app/components/noosfero/index.ts b/src/app/components/noosfero/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/components/noosfero/profile-image/index.ts b/src/app/components/noosfero/profile-image/index.ts new file mode 100644 index 0000000..4206e70 --- /dev/null +++ b/src/app/components/noosfero/profile-image/index.ts @@ -0,0 +1 @@ +/* Module Index Entry - generated using the script npm run generate-index */ diff --git a/src/app/content-viewer/index.ts b/src/app/content-viewer/index.ts new file mode 100644 index 0000000..c9ffa0e --- /dev/null +++ b/src/app/content-viewer/index.ts @@ -0,0 +1,3 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./content-viewer-actions.component"; +export * from "./content-viewer.component"; diff --git a/src/app/main/index.ts b/src/app/main/index.ts new file mode 100644 index 0000000..931b9b8 --- /dev/null +++ b/src/app/main/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./main.component"; diff --git a/src/app/models/index.ts b/src/app/models/index.ts new file mode 100644 index 0000000..181d29e --- /dev/null +++ b/src/app/models/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./interfaces"; diff --git a/src/app/profile-info/index.ts b/src/app/profile-info/index.ts new file mode 100644 index 0000000..00329c7 --- /dev/null +++ b/src/app/profile-info/index.ts @@ -0,0 +1,2 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./profile-info.component"; diff --git a/src/app/profile/index.ts b/src/app/profile/index.ts new file mode 100644 index 0000000..c3247f5 --- /dev/null +++ b/src/app/profile/index.ts @@ -0,0 +1,3 @@ +/* Module Index Entry - generated using the script npm run generate-index */ +export * from "./profile-home.component"; +export * from "./profile.component"; diff --git a/src/spec/helpers.ts b/src/spec/helpers.ts new file mode 100644 index 0000000..7cdf2eb --- /dev/null +++ b/src/spec/helpers.ts @@ -0,0 +1,31 @@ + +import {ngClass, TestComponentBuilder, ComponentFixture} from 'ng-forward/cjs/testing/test-component-builder'; +import {quickFixture} from 'ng-forward/cjs/tests/utils'; +import {Input, provide, Component} from 'ng-forward'; + + + +export interface ComponentFixtureTemplate { + providers?: any[]; + directives?: any[]; + template?: string; +} + +let tcb: TestComponentBuilder = new TestComponentBuilder(); + +export function quickCreateComponent({ + providers = [], + directives = [], + template = '
' +}): Promise { + + @Component({ selector: 'test', template, directives, providers }) + class Test { } + + return tcb.createAsync(Test); +} + +export function createComponentFromClass(yourClass: ngClass) { + return tcb.createAsync(yourClass); +} + diff --git a/tsconfig.json b/tsconfig.json index 95522c7..71c70a1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "experimentalDecorators": true }, "exclude": [ + "dev-scripts", "node_modules", "typings/main", "typings/main.d.ts", -- libgit2 0.21.2