Currently if something throws an error right after Karma has initialized, the log will look something like the following:
```
HeadlessChrome 0.0.0 (Windows 10 0.0.0) ERROR
{
"originalErr": {},
"__zone_symbol__currentTask": {
"type": "microTask",
"state": "notScheduled",
"source": "Promise.then",
"zone": "<root>",
"cancelFn": null,
"runCount": 0
}
}
```
These changes log out the stack trace explicitly so we have some more info to work with if it happens.
This adds bazel test rules for everything under cdk/ and sets CircleCI Overlay tests don't work because there's not yet a way to pass through flags to the browser. These issues will be addressed in a follow-up PR.
* Adds an initial implementation of the new `MatBottomSheet` service that allows users to display component-based or template-based bottom sheets.
* Sets up the various boilerplate and infrastructure necessary for a new component.
Note: this is an initial implementation that has the necessary functionality, styles and accessibility. More docs, examples and touch gestures will be added in a follow-up.
In order to align with the `angular/angular` setup, we also remove the temporary Chrome Headless Sandbox workaround in favor of faster Travis CI containers. To be able to still use headless chrome, we specify the `no-sandbox` flag.
Reference https://github.com/angular/angular/pull/21641
Runs local tests in Chrome Headless. This speeds up the tests and also ensures more test stability. On Windows there are a lot of pixel deviation failures because the tests seemed to be affected by the screen resolution or window frame.
By running the tests headless, the Chrome launcher has more control about the rendering and pixel deviations like before won't happen anymore. It's still the same Chrome that runs, just that the screen is kind of emulated like in XVFB.
* No longer explicitly specifies the Chrome Driver version for the e2e tests. The chrome driver associated with the latest Chrome version will be used now.
After the switch to lettable operators, we had started importing all operators via `rxjs/operators`. These changes switch us back to only importing the individual ones and add some linting so it doesn't happen in the future.
Bumps the required RxJS version to 5.5.0 and gets rid of our RxChain in favor of using the lettable Rx operators. Refactors all the usages and updates the configs.
Fixes#7275.
Refactors all of the usages of the deprecated `Http` by replacing them with the `HttpClient`.
BREAKING CHANGE: Material now requires `@angular/common` instead of `@angular/http` and uses `HttpClient` instead of `Http`.
* No longer creates the coverage reports inside of Browserstack. The reports can be generated inside of Chrome Headless that doesn't run remotely on BrowserStack or Saucelabs.
* Move UniqueSelectionDispatcher to CDK.
BREAKING CHANGE: UniqueSelectionDispatcher, UniqueSelectionDispatcherListener and UNIQUE_SELECTION_DISPATCHER_PROVIDER are no longer
available from @angular/material and instead must be imported from @angular/cdk/collections
* Move UniqueSelectionDispatcher to CDK.
BREAKING CHANGE: UniqueSelectionDispatcher, UniqueSelectionDispatcherListener and UNIQUE_SELECTION_DISPATCHER_PROVIDER are no longer
available from @angular/material and instead must be imported from @angular/cdk/collections
* Move CdkAccordion to @angular/cdk/accordion
BREAKING CHANGE:
- CdkAccordion is now in @angular/cdk/accordion
- AccordionChild is renamed to CdkAccordionChild
- CdkAccordion no longer has displayMode and hideToggle @Inputs
- CdkAccordionItem is now a @Directive
- CdkAccordion is now exportedAs CdkAccordion for template referencing
- CdkAccordionItem is now exported as CdkAccordionItem for template referencing
Before this change, all of `@angular/material` was bundled into a
single, flat JS file.
After this change, each top-level component (i.e., each directory under
`src/lib`) will be have its own JS file (and d.ts and metadata.json).
The benefit of this change is that current versions of webpack will be
able to do a much better job of only including the code an app is using.
It also allows (but does not require) people to explicitly import from specific components,
e.g.
```
import {MdButtonModule} from '@angular/material/button';
``
For development _within Angular Material itself_ we have to use these
deeper imports because the root `@angular/material` doesn't exist until
we build the relase package.
Additionally, this PR adds a `tsconfig.json` for each dir under `src/`
with the correct path mappings for that directory, so that IDEs will
correctly generate imports.
Closure Compiler CI check is also disabled by this PR; it cannot work
with the new package structure until a release with
https://github.com/google/closure-compiler/pull/2600 is made available.
* create moment adapter
* add Moment to karma.conf.js
* use MAT_DATE_LOCALE
* tests are now running
* add in tests
* WIP: demo
* add synthetic default imports for moment
* add locale switching to demo
* fix moment import issues with tests
* fix aot
* address comments
* fix closure issue
* add additional explanation of rollup issue
* remove moment adapter demo since it is preventing sync into g3 (will add
back as a docs example in future PR).
* fix bad rebase
* Deletes the duplicate testing utilities because #5386 just copied them to the CDK but didn't delete the old files.
* Introduces a secondary entry point (only inside of development right now) that allows us to use the testing utilities from the Material package tests
* Renames the e2e test file to match the pattern of `{{component}}-e2e.spec.ts`.
* Flattens the directory structure in the `e2e` directory. Having a separate dir for each component was overkill since only have one file per component.
* Fixes some inconsistent code styles in the Protractor config.
Fixes#5030.
Monkey-patches TestBed.resetTestingModule such that any errors that occur during component destruction are thrown instead of silently logged. Also runs TestBed.resetTestingModule after each unit test.
Without this patch, the combination of two behaviors is problematic for Angular Material:
- TestBed.resetTestingModule catches errors thrown on fixture destruction and logs them without the errors ever being thrown. This means that any component errors that occur in ngOnDestroy can encounter errors silently and still pass unit tests.
- TestBed.resetTestingModule is only called *before* a test is run, meaning that even *if* the aforementioned errors were thrown, they would be reported for the wrong test (the test that's about to start, not the test that just finished).
* Fixes a bunch of 404s that were being logged when debugging unit tests. It was because we're not serving the source maps for RxJS and Hammer.
* Removes a few redundant options from the Karma config, because they're the same as the defaults.
* Saucelabs seems to have issues with Edge and the `karma-coverage` plugin.
* Running on Browserstack seems to be work without any flakiness and also makes the build faster (runs less browsers than on saucelabs)
Karma recently introduced a breaking change, that **hasn't** been noted (https://github.com/karma-runner/karma/issues/2582).
Karma doesn't show any `console.log` calls anymore, because the priority order of the `LogLevel`'s has been changed. The default log leve for the `browserConsoleLog` does no longer include the `LOG` log-level.
* chore(focus-classes): fix failing tests when browser is blurred
On Saucelabs, browsers will run simultaneously and therefore can't focus all browser windows at the same time.
This is problematic when testing focus states. Chrome and Firefoxonly fire FocusEvents when the window is focused. This issue also appears locally.
Fixes#2903.
* Extract patch logic into extra function