Skip to content

Commit 6a7583a

Browse files
authored
docs(multiple): add testonly mode (angular#31744)
* Adds a 'testonly' query param that does the following when true: 1. Hides the menu button 2. Hides the toggle config button toggles 3. Sets the user's config to use M3 theme 4. Sets the user's config to use sysmte theme
1 parent 3229dbc commit 6a7583a

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/dev-app/dev-app/dev-app-layout.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<main [attr.dir]="state.direction" [class]="getDensityClass()" class="demo-main">
3636
<!-- The toolbar should always be in the LTR direction -->
3737
<mat-toolbar color="primary" dir="ltr">
38-
<button matIconButton (click)="navigation.open('mouse')">
38+
<button class="demo-menu-button" matIconButton (click)="navigation.open('mouse')">
3939
<mat-icon>menu</mat-icon>
4040
</button>
4141
<div class="demo-toolbar">

src/dev-app/dev-app/dev-app-layout.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,10 @@ body {
7373
display: flex;
7474
align-items: center;
7575
}
76+
77+
.demo-testonly-mode {
78+
.demo-menu-button,
79+
.demo-config-buttons {
80+
display: none;
81+
}
82+
}

src/dev-app/dev-app/dev-app-layout.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*/
88

99
import {Direction, Directionality} from '@angular/cdk/bidi';
10-
1110
import {
1211
ChangeDetectionStrategy,
1312
ChangeDetectorRef,
@@ -25,7 +24,9 @@ import {MatListModule} from '@angular/material/list';
2524
import {MatSidenavModule} from '@angular/material/sidenav';
2625
import {MatToolbarModule} from '@angular/material/toolbar';
2726
import {MatTooltip, MatTooltipModule} from '@angular/material/tooltip';
28-
import {RouterModule} from '@angular/router';
27+
import {ActivatedRoute, RouterModule} from '@angular/router';
28+
import {Observable} from 'rxjs';
29+
import {map} from 'rxjs/operators';
2930
import {getAppState, setAppState} from './dev-app-state';
3031
import {DevAppRippleOptions} from './ripple-options';
3132
import {DevAppDirectionality} from './dev-app-directionality';
@@ -54,8 +55,10 @@ export class DevAppLayout {
5455
private _changeDetectorRef = inject(ChangeDetectorRef);
5556
private _document = inject(DOCUMENT);
5657
private _iconRegistry = inject(MatIconRegistry);
58+
private _route = inject(ActivatedRoute);
5759

5860
state = getAppState();
61+
testMode: Observable<boolean>;
5962
navItems = [
6063
{name: 'Examples', route: '/examples'},
6164
{name: 'CDK Dialog', route: '/cdk-dialog'},
@@ -135,6 +138,7 @@ export class DevAppLayout {
135138
readonly isZoneless = this._ngZone instanceof ɵNoopNgZone;
136139

137140
constructor() {
141+
this.testMode = this._route.queryParams.pipe(map(params => params['testonly'] === 'true'));
138142
this.toggleTheme(this.state.darkTheme);
139143
this.toggleSystemTheme(this.state.systemTheme);
140144
this.toggleStrongFocus(this.state.strongFocusEnabled);
@@ -143,6 +147,14 @@ export class DevAppLayout {
143147
this.toggleDirection(this.state.direction);
144148
this.toggleM3(this.state.m3Enabled);
145149
this.toggleColorApiBackCompat(this.state.colorApiBackCompat);
150+
151+
this.testMode.subscribe(isTestOnly => {
152+
if (isTestOnly) {
153+
this.toggleM3(true);
154+
this.toggleSystemTheme(true);
155+
this._document.body.classList.add('demo-testonly-mode');
156+
}
157+
});
146158
}
147159

148160
toggleTheme(value = !this.state.darkTheme) {

0 commit comments

Comments
 (0)