Merge remote-tracking branch 'remotes/angular.io/master'
# Conflicts: # public/docs/ts/latest/cookbook/component-communication.jade # public/docs/ts/latest/guide/style-guide.jade # public/docs/ts/latest/guide/upgrade.jade
This commit is contained in:
commit
dd4e887b47
|
@ -14,6 +14,7 @@ pubspec.lock
|
||||||
.idea
|
.idea
|
||||||
**/js/latest/api
|
**/js/latest/api
|
||||||
**/ts/latest/api
|
**/ts/latest/api
|
||||||
|
**/dart/latest/api
|
||||||
**/docs/**/_fragments
|
**/docs/**/_fragments
|
||||||
_.*
|
_.*
|
||||||
**/resources/zips
|
**/resources/zips
|
||||||
|
|
35
gulpfile.js
35
gulpfile.js
|
@ -231,19 +231,33 @@ function runE2eTsTests(appDir, outputFile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runProtractor(prepPromise, appDir, appRunSpawnInfo, outputFile) {
|
function runProtractor(prepPromise, appDir, appRunSpawnInfo, outputFile) {
|
||||||
|
var specFilename = path.resolve(`${appDir}/../e2e-spec.ts`);
|
||||||
return prepPromise
|
return prepPromise
|
||||||
.catch(function(){
|
.catch(function(){
|
||||||
var emsg = `AppDir failed during compile: ${appDir}\n\n`;
|
var emsg = `Application at ${appDir} failed to transpile.\n\n`;
|
||||||
gutil.log(emsg);
|
gutil.log(emsg);
|
||||||
fs.appendFileSync(outputFile, emsg);
|
fs.appendFileSync(outputFile, emsg);
|
||||||
return Promise.reject(emsg);
|
return Promise.reject(emsg);
|
||||||
})
|
})
|
||||||
.then(function (data) {
|
.then(function (data) {
|
||||||
|
var transpileError = false;
|
||||||
|
|
||||||
// start protractor
|
// start protractor
|
||||||
var specFilename = path.resolve(`${appDir}/../e2e-spec.ts`);
|
|
||||||
var spawnInfo = spawnExt('npm', [ 'run', 'protractor', '--', 'protractor.config.js',
|
var spawnInfo = spawnExt('npm', [ 'run', 'protractor', '--', 'protractor.config.js',
|
||||||
`--specs=${specFilename}`, '--params.appDir=' + appDir, '--params.outputFile=' + outputFile], { cwd: EXAMPLES_PROTRACTOR_PATH });
|
`--specs=${specFilename}`, '--params.appDir=' + appDir, '--params.outputFile=' + outputFile], { cwd: EXAMPLES_PROTRACTOR_PATH });
|
||||||
return spawnInfo.promise;
|
|
||||||
|
spawnInfo.proc.stderr.on('data', function (data) {
|
||||||
|
transpileError = transpileError || /npm ERR! Exit status 100/.test(data.toString());
|
||||||
|
});
|
||||||
|
return spawnInfo.promise.catch(function(err) {
|
||||||
|
if (transpileError) {
|
||||||
|
var emsg = `${specFilename} failed to transpile.\n\n`;
|
||||||
|
gutil.log(emsg);
|
||||||
|
fs.appendFileSync(outputFile, emsg);
|
||||||
|
}
|
||||||
|
return Promise.reject(emsg);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.then(
|
.then(
|
||||||
function() { return finish(true);},
|
function() { return finish(true);},
|
||||||
|
@ -373,7 +387,6 @@ gulp.task('_copy-example-boilerplate', copyExampleBoilerplate);
|
||||||
// copies boilerplate files to locations
|
// copies boilerplate files to locations
|
||||||
// where an example app is found
|
// where an example app is found
|
||||||
// also copies certain web files (e.g., styles.css) to ~/_examples/**/dart/**/web
|
// also copies certain web files (e.g., styles.css) to ~/_examples/**/dart/**/web
|
||||||
// also copies protractor.config.js file
|
|
||||||
function copyExampleBoilerplate() {
|
function copyExampleBoilerplate() {
|
||||||
gutil.log('Copying example boilerplate files');
|
gutil.log('Copying example boilerplate files');
|
||||||
var sourceFiles = _exampleBoilerplateFiles.map(function(fn) {
|
var sourceFiles = _exampleBoilerplateFiles.map(function(fn) {
|
||||||
|
@ -390,8 +403,7 @@ function copyExampleBoilerplate() {
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return copyFiles(dartWebSourceFiles, dartExampleWebPaths);
|
return copyFiles(dartWebSourceFiles, dartExampleWebPaths);
|
||||||
})
|
})
|
||||||
// copy files from _examples/_protractor dir to each subdir that
|
// copy certain files from _examples/_protractor dir to each subdir that contains an e2e-spec file.
|
||||||
// contains a e2e-spec file.
|
|
||||||
.then(function() {
|
.then(function() {
|
||||||
var protractorSourceFiles =
|
var protractorSourceFiles =
|
||||||
_exampleProtractorBoilerplateFiles
|
_exampleProtractorBoilerplateFiles
|
||||||
|
@ -474,11 +486,8 @@ gulp.task('build-js-api-docs', ['_shred-api-examples'], function() {
|
||||||
return buildApiDocs('js');
|
return buildApiDocs('js');
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build-plunkers', function() {
|
gulp.task('build-plunkers', ['_copy-example-boilerplate'], function() {
|
||||||
return copyExampleBoilerplate()
|
return plunkerBuilder.buildPlunkers(EXAMPLES_PATH, LIVE_EXAMPLES_PATH, { errFn: gutil.log });
|
||||||
.then(function() {
|
|
||||||
return plunkerBuilder.buildPlunkers(EXAMPLES_PATH, LIVE_EXAMPLES_PATH, { errFn: gutil.log });
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build-dart-cheatsheet', [], function() {
|
gulp.task('build-dart-cheatsheet', [], function() {
|
||||||
|
@ -586,11 +595,11 @@ gulp.task('_harp-compile', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('_shred-devguide-examples', ['_shred-clean-devguide'], function() {
|
gulp.task('_shred-devguide-examples', ['_shred-clean-devguide', '_copy-example-boilerplate'], function() {
|
||||||
return docShredder.shred( _devguideShredOptions);
|
return docShredder.shred( _devguideShredOptions);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('_shred-devguide-shared-jade', ['_shred-clean-devguide-shared-jade'], function() {
|
gulp.task('_shred-devguide-shared-jade', ['_shred-clean-devguide-shared-jade', '_copy-example-boilerplate'], function() {
|
||||||
return docShredder.shred( _devguideShredJadeOptions);
|
return docShredder.shred( _devguideShredJadeOptions);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,7 @@ function sendKeys(element, str) {
|
||||||
// better to create a resolved promise here but ... don't know how with protractor;
|
// better to create a resolved promise here but ... don't know how with protractor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// See http://jasmine.github.io/2.1/custom_reporter.html
|
||||||
function Reporter(options) {
|
function Reporter(options) {
|
||||||
var _defaultOutputFile = path.resolve(process.cwd(), "../../../../", 'protractor-results.txt');
|
var _defaultOutputFile = path.resolve(process.cwd(), "../../../../", 'protractor-results.txt');
|
||||||
options.outputFile = options.outputFile || _defaultOutputFile;
|
options.outputFile = options.outputFile || _defaultOutputFile;
|
||||||
|
@ -142,7 +143,7 @@ function Reporter(options) {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.specStarted = function(spec) {
|
this.specStarted = function(spec) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.specDone = function(spec) {
|
this.specDone = function(spec) {
|
||||||
|
@ -156,6 +157,11 @@ function Reporter(options) {
|
||||||
|
|
||||||
_currentSuite.specs.push(currentSpec);
|
_currentSuite.specs.push(currentSpec);
|
||||||
log(spec.status + ' - ' + spec.description);
|
log(spec.status + ' - ' + spec.description);
|
||||||
|
if (spec.status === 'failed') {
|
||||||
|
spec.failedExpectations.forEach(function(err) {
|
||||||
|
log(err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.jasmineDone = function() {
|
this.jasmineDone = function() {
|
||||||
|
|
|
@ -7,13 +7,13 @@ describe('Architecture', function () {
|
||||||
browser.get('');
|
browser.get('');
|
||||||
});
|
});
|
||||||
|
|
||||||
function itReset(name: string, func: (v: void) => any) {
|
function itReset(name: string, func: () => any) {
|
||||||
it(name, function() {
|
it(name, function() {
|
||||||
browser.get('').then(func);
|
browser.get('').then(func);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
it('should display correct title: ' + title, function () {
|
it(`should display correct title: ${title}`, function () {
|
||||||
expect(element(by.css('h2')).getText()).toEqual(title);
|
expect(element(by.css('h2')).getText()).toEqual(title);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe('Attribute directives', function () {
|
||||||
browser.get('');
|
browser.get('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should display correct title: ' + _title, function () {
|
it(`should display correct title: ${_title}`, function () {
|
||||||
expect(element(by.css('h1')).getText()).toEqual(_title);
|
expect(element(by.css('h1')).getText()).toEqual(_title);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -29,19 +29,18 @@ describe('Hierarchical dependency injection', function () {
|
||||||
testEdit(false);
|
testEdit(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
function testEdit(shouldSave) {
|
function testEdit(shouldSave: boolean) {
|
||||||
let inputEle;
|
|
||||||
// select 2nd ele
|
// select 2nd ele
|
||||||
let heroEle = element.all(by.css('heroes-list li')).get(1);
|
let heroEle = element.all(by.css('heroes-list li')).get(1);
|
||||||
// get the 2nd span which is the name of the hero
|
// get the 2nd span which is the name of the hero
|
||||||
let heroNameEle = heroEle.all(by.css('hero-card span')).get(1);
|
let heroNameEle = heroEle.all(by.css('hero-card span')).get(1);
|
||||||
let editButtonEle = heroEle.element(by.cssContainingText('button','edit'));
|
let editButtonEle = heroEle.element(by.cssContainingText('button','edit'));
|
||||||
editButtonEle.click().then(function() {
|
editButtonEle.click().then(function() {
|
||||||
inputEle = heroEle.element(by.css('hero-editor input'));
|
let inputEle = heroEle.element(by.css('hero-editor input'));
|
||||||
// return inputEle.sendKeys("foo");
|
// return inputEle.sendKeys("foo");
|
||||||
return sendKeys(inputEle, "foo");
|
return sendKeys(inputEle, "foo");
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
buttonName = shouldSave ? 'save' : 'cancel';
|
let buttonName = shouldSave ? 'save' : 'cancel';
|
||||||
let buttonEle = heroEle.element(by.cssContainingText('button', buttonName));
|
let buttonEle = heroEle.element(by.cssContainingText('button', buttonName));
|
||||||
return buttonEle.click();
|
return buttonEle.click();
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
|
|
|
@ -7,18 +7,17 @@ describe('Homepage Hello World', function () {
|
||||||
|
|
||||||
// Does it even launch?
|
// Does it even launch?
|
||||||
let expectedLabel = 'Name:';
|
let expectedLabel = 'Name:';
|
||||||
it('should display the label: ' + expectedLabel, function () {
|
it(`should display the label: ${expectedLabel}`, function () {
|
||||||
expect(element(by.css('label')).getText()).toEqual(expectedLabel);
|
expect(element(by.css('label')).getText()).toEqual(expectedLabel);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should display entered name', function () {
|
it('should display entered name', function () {
|
||||||
let testName = 'Bobby Joe';
|
let testName = 'Bobby Joe';
|
||||||
let newValue;
|
|
||||||
let nameEle = element.all(by.css('input')).get(0);
|
let nameEle = element.all(by.css('input')).get(0);
|
||||||
nameEle.getAttribute('value').then(function(value) {
|
nameEle.getAttribute('value').then(function(value) {
|
||||||
// nameEle.sendKeys(testName); // should work but doesn't
|
// nameEle.sendKeys(testName); // should work but doesn't
|
||||||
sendKeys(nameEle, testName); // utility that does work
|
sendKeys(nameEle, testName); // utility that does work
|
||||||
newValue = value + testName; // old input box value + new name
|
let newValue = value + testName; // old input box value + new name
|
||||||
expect(nameEle.getAttribute('value')).toEqual(newValue);
|
expect(nameEle.getAttribute('value')).toEqual(newValue);
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
// Check the interpolated message built from name
|
// Check the interpolated message built from name
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe('Homepage Tabs', function () {
|
||||||
|
|
||||||
// Does it even launch?
|
// Does it even launch?
|
||||||
let expectedAppTitle = 'Tabs Demo';
|
let expectedAppTitle = 'Tabs Demo';
|
||||||
it('should display app title: ' + expectedAppTitle, function () {
|
it(`should display app title: ${expectedAppTitle}`, function () {
|
||||||
expect(element(by.css('h4')).getText()).toEqual(expectedAppTitle);
|
expect(element(by.css('h4')).getText()).toEqual(expectedAppTitle);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe('Homepage Todo', function () {
|
||||||
|
|
||||||
// Does it even launch?
|
// Does it even launch?
|
||||||
let expectedAppTitle = 'Todo';
|
let expectedAppTitle = 'Todo';
|
||||||
it('should display app title: ' + expectedAppTitle, function () {
|
it(`should display app title: ${expectedAppTitle}`, function () {
|
||||||
expect(element(by.css('h2')).getText()).toEqual(expectedAppTitle);
|
expect(element(by.css('h2')).getText()).toEqual(expectedAppTitle);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ describe('Lifecycle hooks', function () {
|
||||||
let powerInputEle = inputEles.get(0);
|
let powerInputEle = inputEles.get(0);
|
||||||
let titleEle = doCheckViewEle.element(by.css('p'));
|
let titleEle = doCheckViewEle.element(by.css('p'));
|
||||||
let changeLogEles = doCheckViewEle.all(by.css('div'));
|
let changeLogEles = doCheckViewEle.all(by.css('div'));
|
||||||
let logCount;
|
let logCount: number;
|
||||||
|
|
||||||
expect(titleEle.getText()).toContain('Windstorm can sing');
|
expect(titleEle.getText()).toContain('Windstorm can sing');
|
||||||
changeLogEles.count().then(function(count) {
|
changeLogEles.count().then(function(count) {
|
||||||
|
@ -92,7 +92,7 @@ describe('Lifecycle hooks', function () {
|
||||||
let commentEle = parentEle.element(by.className('comment'));
|
let commentEle = parentEle.element(by.className('comment'));
|
||||||
let logEles = parentEle.all(by.css('h4 ~ div'));
|
let logEles = parentEle.all(by.css('h4 ~ div'));
|
||||||
let childViewInputEle = parentEle.element(by.css('my-child input'));
|
let childViewInputEle = parentEle.element(by.css('my-child input'));
|
||||||
let logCount;
|
let logCount: number;
|
||||||
|
|
||||||
expect(childViewInputEle.getAttribute('value')).toContain('Magneta');
|
expect(childViewInputEle.getAttribute('value')).toContain('Magneta');
|
||||||
expect(commentEle.isPresent()).toBe(false, 'comment should not be in DOM');
|
expect(commentEle.isPresent()).toBe(false, 'comment should not be in DOM');
|
||||||
|
@ -121,7 +121,7 @@ describe('Lifecycle hooks', function () {
|
||||||
let commentEle = parentEle.element(by.className('comment'));
|
let commentEle = parentEle.element(by.className('comment'));
|
||||||
let logEles = parentEle.all(by.css('h4 ~ div'));
|
let logEles = parentEle.all(by.css('h4 ~ div'));
|
||||||
let childViewInputEle = parentEle.element(by.css('my-child input'));
|
let childViewInputEle = parentEle.element(by.css('my-child input'));
|
||||||
let logCount;
|
let logCount: number;
|
||||||
|
|
||||||
expect(childViewInputEle.getAttribute('value')).toContain('Magneta');
|
expect(childViewInputEle.getAttribute('value')).toContain('Magneta');
|
||||||
expect(commentEle.isPresent()).toBe(false, 'comment should not be in DOM');
|
expect(commentEle.isPresent()).toBe(false, 'comment should not be in DOM');
|
||||||
|
|
|
@ -65,7 +65,7 @@ describe('Pipes', function () {
|
||||||
|
|
||||||
it('should support flying heroes (pure) ', function () {
|
it('should support flying heroes (pure) ', function () {
|
||||||
let nameEle = element(by.css('flying-heroes input[type="text"]'));
|
let nameEle = element(by.css('flying-heroes input[type="text"]'));
|
||||||
let canFlyCheckEle = element(by.css('flying-heroes #can-fly'));
|
let canFlyCheckEle = element(by.css('flying-heroes #can-fly'));
|
||||||
let mutateCheckEle = element(by.css('flying-heroes #mutate'));
|
let mutateCheckEle = element(by.css('flying-heroes #mutate'));
|
||||||
let resetEle = element(by.css('flying-heroes button'));
|
let resetEle = element(by.css('flying-heroes button'));
|
||||||
let flyingHeroesEle = element.all(by.css('flying-heroes #flyers div'));
|
let flyingHeroesEle = element.all(by.css('flying-heroes #flyers div'));
|
||||||
|
|
|
@ -3,12 +3,11 @@ describe('QuickStart E2E Tests', function () {
|
||||||
|
|
||||||
let expectedMsg = 'My First Angular 2 App';
|
let expectedMsg = 'My First Angular 2 App';
|
||||||
|
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
browser.get('');
|
browser.get('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should display: ' + expectedMsg, function () {
|
it(`should display: ${expectedMsg}`, function () {
|
||||||
expect(element(by.css('h1')).getText()).toEqual(expectedMsg);
|
expect(element(by.css('h1')).getText()).toEqual(expectedMsg);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,111 +0,0 @@
|
||||||
/// <reference path="../_protractor/e2e.d.ts" />
|
|
||||||
describe('Router', function () {
|
|
||||||
beforeAll(function () {
|
|
||||||
browser.get('');
|
|
||||||
});
|
|
||||||
function getPageStruct() {
|
|
||||||
hrefEles = element.all(by.css('my-app a'));
|
|
||||||
return {
|
|
||||||
hrefs: hrefEles,
|
|
||||||
routerParent: element(by.css('my-app > undefined')),
|
|
||||||
routerTitle: element(by.css('my-app > undefined > h2')),
|
|
||||||
crisisHref: hrefEles.get(0),
|
|
||||||
crisisList: element.all(by.css('my-app > undefined > undefined li')),
|
|
||||||
crisisDetail: element(by.css('my-app > undefined > undefined > div')),
|
|
||||||
crisisDetailTitle: element(by.css('my-app > undefined > undefined > div > h3')),
|
|
||||||
heroesHref: hrefEles.get(1),
|
|
||||||
heroesList: element.all(by.css('my-app > undefined li')),
|
|
||||||
heroDetail: element(by.css('my-app > undefined > div')),
|
|
||||||
heroDetailTitle: element(by.css('my-app > undefined > div > h3')),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
it('should be able to see the start screen', function () {
|
|
||||||
var page = getPageStruct();
|
|
||||||
expect(page.hrefs.count()).toEqual(2, 'should be two dashboard choices');
|
|
||||||
expect(page.crisisHref.getText()).toEqual("Crisis Center");
|
|
||||||
expect(page.heroesHref.getText()).toEqual("Heroes");
|
|
||||||
});
|
|
||||||
it('should be able to see crises center items', function () {
|
|
||||||
var page = getPageStruct();
|
|
||||||
expect(page.crisisList.count()).toBe(4, "should be 4 crisis center entries at start");
|
|
||||||
});
|
|
||||||
it('should be able to see hero items', function () {
|
|
||||||
var page = getPageStruct();
|
|
||||||
page.heroesHref.click().then(function () {
|
|
||||||
expect(page.routerTitle.getText()).toContain('HEROES');
|
|
||||||
expect(page.heroesList.count()).toBe(6, "should be 6 heroes");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
it('should be able to toggle the views', function () {
|
|
||||||
var page = getPageStruct();
|
|
||||||
page.crisisHref.click().then(function () {
|
|
||||||
expect(page.crisisList.count()).toBe(4, "should be 4 crisis center entries");
|
|
||||||
return page.heroesHref.click();
|
|
||||||
}).then(function () {
|
|
||||||
expect(page.heroesList.count()).toBe(6, "should be 6 heroes");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
it('should be able to edit and save details from the crisis center view', function () {
|
|
||||||
crisisCenterEdit(2, true);
|
|
||||||
});
|
|
||||||
it('should be able to edit and cancel details from the crisis center view', function () {
|
|
||||||
crisisCenterEdit(3, false);
|
|
||||||
});
|
|
||||||
it('should be able to edit and save details from the heroes view', function () {
|
|
||||||
var page = getPageStruct();
|
|
||||||
var heroEle, heroText;
|
|
||||||
page.heroesHref.click().then(function () {
|
|
||||||
heroEle = page.heroesList.get(4);
|
|
||||||
return heroEle.getText();
|
|
||||||
}).then(function (text) {
|
|
||||||
expect(text.length).toBeGreaterThan(0, 'should have some text');
|
|
||||||
// remove leading id from text
|
|
||||||
heroText = text.substr(text.indexOf(' ')).trim();
|
|
||||||
return heroEle.click();
|
|
||||||
}).then(function () {
|
|
||||||
expect(page.heroesList.count()).toBe(0, "should no longer see crisis center entries");
|
|
||||||
expect(page.heroDetail.isPresent()).toBe(true, 'should be able to see crisis detail');
|
|
||||||
expect(page.heroDetailTitle.getText()).toContain(heroText);
|
|
||||||
var inputEle = page.heroDetail.element(by.css('input'));
|
|
||||||
return sendKeys(inputEle, '-foo');
|
|
||||||
}).then(function () {
|
|
||||||
expect(page.heroDetailTitle.getText()).toContain(heroText + '-foo');
|
|
||||||
var buttonEle = page.heroDetail.element(by.css('button'));
|
|
||||||
return buttonEle.click();
|
|
||||||
}).then(function () {
|
|
||||||
expect(heroEle.getText()).toContain(heroText + '-foo');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
function crisisCenterEdit(index, shouldSave) {
|
|
||||||
var page = getPageStruct();
|
|
||||||
var crisisEle, crisisText;
|
|
||||||
page.crisisHref.click()
|
|
||||||
.then(function () {
|
|
||||||
crisisEle = page.crisisList.get(index);
|
|
||||||
return crisisEle.getText();
|
|
||||||
}).then(function (text) {
|
|
||||||
expect(text.length).toBeGreaterThan(0, 'should have some text');
|
|
||||||
// remove leading id from text
|
|
||||||
crisisText = text.substr(text.indexOf(' ')).trim();
|
|
||||||
return crisisEle.click();
|
|
||||||
}).then(function () {
|
|
||||||
expect(page.crisisList.count()).toBe(0, "should no longer see crisis center entries");
|
|
||||||
expect(page.crisisDetail.isPresent()).toBe(true, 'should be able to see crisis detail');
|
|
||||||
expect(page.crisisDetailTitle.getText()).toContain(crisisText);
|
|
||||||
var inputEle = page.crisisDetail.element(by.css('input'));
|
|
||||||
return sendKeys(inputEle, '-foo');
|
|
||||||
}).then(function () {
|
|
||||||
expect(page.crisisDetailTitle.getText()).toContain(crisisText + '-foo');
|
|
||||||
var buttonEle = page.crisisDetail.element(by.cssContainingText('button', shouldSave ? 'Save' : 'Cancel'));
|
|
||||||
return buttonEle.click();
|
|
||||||
}).then(function () {
|
|
||||||
if (shouldSave) {
|
|
||||||
expect(crisisEle.getText()).toContain(crisisText + '-foo');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
expect(crisisEle.getText()).not.toContain(crisisText + '-foo');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=e2e-spec.js.map
|
|
|
@ -6,7 +6,7 @@ describe('Router', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
function getPageStruct() {
|
function getPageStruct() {
|
||||||
hrefEles = element.all(by.css('my-app a'));
|
let hrefEles = element.all(by.css('my-app a'));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
hrefs: hrefEles,
|
hrefs: hrefEles,
|
||||||
|
@ -66,7 +66,8 @@ describe('Router', function () {
|
||||||
|
|
||||||
it('should be able to edit and save details from the heroes view', function () {
|
it('should be able to edit and save details from the heroes view', function () {
|
||||||
let page = getPageStruct();
|
let page = getPageStruct();
|
||||||
let heroEle, heroText;
|
let heroEle: protractor.ElementFinder;
|
||||||
|
let heroText: string;
|
||||||
page.heroesHref.click().then(function() {
|
page.heroesHref.click().then(function() {
|
||||||
heroEle = page.heroesList.get(4);
|
heroEle = page.heroesList.get(4);
|
||||||
return heroEle.getText();
|
return heroEle.getText();
|
||||||
|
@ -90,9 +91,10 @@ describe('Router', function () {
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
function crisisCenterEdit(index, shouldSave) {
|
function crisisCenterEdit(index: number, shouldSave: boolean) {
|
||||||
let page = getPageStruct();
|
let page = getPageStruct();
|
||||||
let crisisEle, crisisText;
|
let crisisEle: protractor.ElementFinder;
|
||||||
|
let crisisText: string;
|
||||||
page.crisisHref.click()
|
page.crisisHref.click()
|
||||||
.then(function () {
|
.then(function () {
|
||||||
crisisEle = page.crisisList.get(index);
|
crisisEle = page.crisisList.get(index);
|
||||||
|
|
|
@ -6,7 +6,7 @@ describe('Router', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
function getPageStruct() {
|
function getPageStruct() {
|
||||||
hrefEles = element.all(by.css('my-app a'));
|
let hrefEles = element.all(by.css('my-app a'));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
hrefs: hrefEles,
|
hrefs: hrefEles,
|
||||||
|
@ -66,7 +66,8 @@ describe('Router', function () {
|
||||||
|
|
||||||
it('should be able to edit and save details from the heroes view', function () {
|
it('should be able to edit and save details from the heroes view', function () {
|
||||||
let page = getPageStruct();
|
let page = getPageStruct();
|
||||||
let heroEle, heroText;
|
let heroEle: protractor.ElementFinder;
|
||||||
|
let heroText: string;
|
||||||
page.heroesHref.click().then(function() {
|
page.heroesHref.click().then(function() {
|
||||||
heroEle = page.heroesList.get(4);
|
heroEle = page.heroesList.get(4);
|
||||||
return heroEle.getText();
|
return heroEle.getText();
|
||||||
|
@ -90,9 +91,10 @@ describe('Router', function () {
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
function crisisCenterEdit(index, shouldSave) {
|
function crisisCenterEdit(index: number, shouldSave: boolean) {
|
||||||
let page = getPageStruct();
|
let page = getPageStruct();
|
||||||
let crisisEle, crisisText;
|
let crisisEle: protractor.ElementFinder;
|
||||||
|
let crisisText: string;
|
||||||
page.crisisHref.click()
|
page.crisisHref.click()
|
||||||
.then(function () {
|
.then(function () {
|
||||||
crisisEle = page.crisisList.get(index);
|
crisisEle = page.crisisList.get(index);
|
||||||
|
|
|
@ -70,7 +70,7 @@ describe('Server Communication', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function testForRefreshedResult(keyPressed, done) {
|
function testForRefreshedResult(keyPressed: string, done: () => void) {
|
||||||
testForResult('my-wiki', keyPressed, false, done)
|
testForResult('my-wiki', keyPressed, false, done)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -101,17 +101,17 @@ describe('Server Communication', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function testForNewResult(keyPressed, done) {
|
function testForNewResult(keyPressed: string, done: () => void) {
|
||||||
testForResult('my-wiki-smart', keyPressed, false, done)
|
testForResult('my-wiki-smart', keyPressed, false, done)
|
||||||
}
|
}
|
||||||
|
|
||||||
function testForStaleResult(keyPressed, done) {
|
function testForStaleResult(keyPressed: string, done: () => void) {
|
||||||
testForResult('my-wiki-smart', keyPressed, true, done)
|
testForResult('my-wiki-smart', keyPressed, true, done)
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function testForResult(componentTagName, keyPressed, hasListBeforeSearch, done) {
|
function testForResult(componentTagName: string, keyPressed: string, hasListBeforeSearch: boolean, done: () => void) {
|
||||||
let searchWait = 1000; // Wait for wikipedia but not so long that tests timeout
|
let searchWait = 1000; // Wait for wikipedia but not so long that tests timeout
|
||||||
let wikiComponent = element(by.tagName(componentTagName));
|
let wikiComponent = element(by.tagName(componentTagName));
|
||||||
expect(wikiComponent).toBeDefined('<' + componentTagName + '> must exist');
|
expect(wikiComponent).toBeDefined('<' + componentTagName + '> must exist');
|
||||||
|
|
|
@ -32,7 +32,7 @@ describe('Structural Directives', function () {
|
||||||
let ngIfSiblingEle = ngIfParentEle.element(by.css('heavy-loader'));
|
let ngIfSiblingEle = ngIfParentEle.element(by.css('heavy-loader'));
|
||||||
let cssButtonEle = element(by.cssContainingText('button', 'show | hide'));
|
let cssButtonEle = element(by.cssContainingText('button', 'show | hide'));
|
||||||
let cssSiblingEle = cssButtonEle.element(by.xpath('..')).element(by.css('heavy-loader'));
|
let cssSiblingEle = cssButtonEle.element(by.xpath('..')).element(by.css('heavy-loader'));
|
||||||
let setConditionText;
|
let setConditionText: string;
|
||||||
setConditionButtonEle.getText().then(function(text) {
|
setConditionButtonEle.getText().then(function(text) {
|
||||||
setConditionText = text;
|
setConditionText = text;
|
||||||
expect(ngIfButtonEle.isPresent()).toBe(true, 'should be able to find ngIfButton');
|
expect(ngIfButtonEle.isPresent()).toBe(true, 'should be able to find ngIfButton');
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
// #docregion
|
// #docregion
|
||||||
|
|
||||||
// app.component.ts
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroesComponent } from './heroes/heroes.component';
|
import { HeroesComponent, HeroService } from './heroes';
|
||||||
import { HeroService } from './heroes/shared/hero.service';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
// #docregion
|
// #docregion
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { Hero } from './shared/hero.model';
|
import { Hero, HeroService } from './shared';
|
||||||
import { HeroService } from './shared/hero.service';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'toh-heroes',
|
selector: 'toh-heroes',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './heroes.component';
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './hero.model';
|
||||||
|
export * from './hero.service';
|
||||||
|
export * from './mock-heroes';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1,6 @@
|
||||||
|
// #docregion
|
||||||
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
|
||||||
|
import { AppComponent } from './app/app.component';
|
||||||
|
|
||||||
|
bootstrap(AppComponent, []);
|
|
@ -1,7 +1,7 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroComponent } from './heroes/hero.component';
|
import { HeroComponent } from './heroes';
|
||||||
import { UsersComponent } from './users/users.component';
|
import { UsersComponent } from './users';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero.component';
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './users';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './users.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { ValidateDirective } from './shared/validate.directive';
|
import { ValidateDirective } from './shared';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './validate.directive';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { ExceptionService } from './shared/exception.service';
|
import { ExceptionService } from './shared';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './exception.service';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HEROES_URL, VILLAINS_URL } from './shared/data.service';
|
import { HEROES_URL, VILLAINS_URL } from './shared';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './data.service';
|
|
@ -1,7 +1,6 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { HeroCollectorService } from './shared/hero-collector.service';
|
import { Hero, HeroCollectorService } from './shared';
|
||||||
import { Hero } from './shared/hero.model';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './hero-collector.service';
|
||||||
|
export * from './hero.model';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { ToastService } from './shared/toast.service';
|
import { ToastService } from './shared';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './toast.service';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './hero.model';
|
||||||
|
export * from './hero.service';
|
|
@ -1,8 +1,7 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { HeroService } from './+heroes/shared/hero.service';
|
import { Hero, HeroService } from './+heroes';
|
||||||
import { ExceptionService, SpinnerService, ToastService } from './shared';
|
import { ExceptionService, SpinnerService, ToastService } from './shared';
|
||||||
import { Hero } from './+heroes/shared/hero.model';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './+heroes';
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './hero.model';
|
||||||
|
export * from './hero.service';
|
|
@ -1,8 +1,7 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { HeroService } from './+heroes/shared/hero.service';
|
import { Hero, HeroService } from './+heroes';
|
||||||
import { ExceptionService, SpinnerService, ToastService } from './shared';
|
import { ExceptionService, SpinnerService, ToastService } from './shared';
|
||||||
import { Hero } from './+heroes/shared/hero.model';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './+heroes';
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -2,7 +2,7 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
// #docregion example
|
// #docregion example
|
||||||
import { HeroesComponent } from './+heroes/index';
|
import { HeroesComponent } from './+heroes';
|
||||||
// #enddocregion example
|
// #enddocregion example
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './+heroes';
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -1,9 +1,9 @@
|
||||||
// #docregion
|
// #docregion
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { Hero } from './shared/hero.model';
|
import { Hero } from './shared';
|
||||||
// #docregion example
|
// #docregion example
|
||||||
import { Logger } from '../shared/logger.service';
|
import { Logger } from '../shared';
|
||||||
// #enddocregion example
|
// #enddocregion example
|
||||||
|
|
||||||
@Component({
|
@Component({
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './heroes.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero.model';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroesComponent } from './heroes/heroes.component';
|
import { HeroesComponent } from './+heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from './+heroes';
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './logger.service';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroButtonComponent } from './heroes/shared/hero-button/hero-button.component';
|
import { HeroButtonComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroButtonComponent } from './heroes/shared/hero-button/hero-button.component';
|
import { HeroButtonComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroesComponent } from './heroes/heroes.component';
|
import { HeroesComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// #docregion
|
// #docregion
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { Hero } from './shared/hero.model';
|
import { Hero } from './shared';
|
||||||
|
|
||||||
// #docregion example
|
// #docregion example
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './heroes.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero.model';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroButtonComponent } from './heroes/shared/hero-button/hero-button.component';
|
import { HeroButtonComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroButtonComponent } from './heroes/shared/hero-button/hero-button.component';
|
import { HeroButtonComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-button';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { ToastComponent } from './shared/toast/toast.component';
|
import { ToastComponent } from './shared';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './shared';
|
||||||
|
export * from './app.component';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './toast';
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './toast.component';
|
|
@ -1,7 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroListComponent } from './heroes/hero-list/hero-list.component';
|
import { HeroListComponent, HeroService } from './heroes';
|
||||||
import { HeroService } from './heroes/shared';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-list.component';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './hero-list';
|
||||||
|
export * from './shared';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroComponent } from './heroes/hero.component';
|
import { HeroComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
moduleId: module.id,
|
moduleId: module.id,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero.component';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './heroes';
|
||||||
|
export * from './app.component';
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { HeroListComponent } from './heroes/hero-list/hero-list.component';
|
import { HeroListComponent } from './heroes';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'sg-app',
|
selector: 'sg-app',
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from './hero-list.component';
|
|
@ -0,0 +1,2 @@
|
||||||
|
export * from './hero-list';
|
||||||
|
export * from './shared';
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue