Skip to content

bug(COMPONENT): AriaDescriber preExistingContainer is null in Test run #19949

Closed
@HELiving

Description

@HELiving

Reproduction

Even in local environment, reproduction is not always consistent.

Steps to reproduce:

  1. Run the unit test with <mat-icon matTooltip="toolTipValue">ToolTip</mat-icon>
  2. Inside of a11y.js AriaDescriber.prototype._createMessagesContainer function
  3. Sometimes preExistingContainer.parentNode is null (preExistingContainer prints
    ) and preExistingContainer.parentNode.removeChild(preExistingContainer);
  4. Throws ERROR: 'Unhandled Promise rejection:', 'Cannot read property 'removeChild' of null', '; Zone:', 'ProxyZone', '; Task:', 'Promise.then', '; Value:', TypeError: Cannot read property 'removeChild' of null TypeError: Cannot read property 'removeChild' of null
  5. Actual source code has correct guard in place https://github.com/angular/components/blob/9.2.x/src/cdk/a11y/aria-describer/aria-describer.ts#L163 preExistingContainer.parentNode!.removeChild(preExistingContainer);
  6. Compiled version on local has preExistingContainer.parentNode.removeChild(preExistingContainer);
  7. \node_modules\@angular\cdk\a11y\package.json has
  "__processed_by_ivy_ngcc__": {
    "es2015": "9.1.12",
    "esm2015": "9.1.12",
    "esm5": "9.1.12",
    "fesm2015": "9.1.12",
    "fesm5": "9.1.12",
    "main": "9.1.12",
    "module": "9.1.12",
    "typings": "9.1.12"
  },

Expected Behavior

No errors in Karma run.

Actual Behavior

ERROR: 'Unhandled Promise rejection:', 'Cannot read property 'removeChild' of null', '; Zone:', 'ProxyZone', '; Task:', 'Promise.then', '; Value:', TypeError: Cannot read property 'removeChild' of null
TypeError: Cannot read property 'removeChild' of null
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber._createMessagesContainer (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:182:1)
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber._createMessageElement (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:148:1)
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber.describe (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:102:1)
    at http://localhost:9876/_karma_webpack_/node_modules/@angular/material/fesm5/tooltip.js:230:1
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:386:1)
    at ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-testing.js:292:1)
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:385:1)
    at Zone../node_modules/zone.js/dist/zone.js.Zone.run (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:143:1)
    at http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:891:1
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:421:1), 'TypeError: Cannot read property 'removeChild' of null
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber._createMessagesContainer (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:182:1)
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber._createMessageElement (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:148:1)
    at AriaDescriber.push../node_modules/@angular/cdk/fesm5/a11y.js.AriaDescriber.describe (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/fesm5/a11y.js:102:1)
    at http://localhost:9876/_karma_webpack_/node_modules/@angular/material/fesm5/tooltip.js:230:1
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:386:1)
    at ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-testing.js:292:1)
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:385:1)
    at Zone../node_modules/zone.js/dist/zone.js.Zone.run (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:143:1)
    at http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:891:1
    at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone.js:421:1)'

Environment

  • Angular: "@angular/core": "^9.1.11",
  • CDK/Material: "@angular/cdk": "^9.2.4",
  • Browser(s): Chrome
  • Operating System (e.g. Windows, macOS, Ubuntu): Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4A relatively minor issue that is not relevant to core functionsarea: cdk/a11y

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions