Skip to content

Commit 2288e7f

Browse files
committed
fix lint and tests
1 parent cea7fc4 commit 2288e7f

File tree

7 files changed

+259
-2
lines changed

7 files changed

+259
-2
lines changed

src/material/divider/testing/BUILD.bazel

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,33 @@ filegroup(
1818
name = "source-files",
1919
srcs = glob(["**/*.ts"]),
2020
)
21+
22+
ng_test_library(
23+
name = "harness_tests_lib",
24+
srcs = ["shared.spec.ts"],
25+
deps = [
26+
":testing",
27+
"//src/cdk/testing",
28+
"//src/cdk/testing/testbed",
29+
"//src/material/divider",
30+
"@npm//@angular/platform-browser",
31+
],
32+
)
33+
34+
ng_test_library(
35+
name = "unit_tests_lib",
36+
srcs = glob(
37+
["**/*.spec.ts"],
38+
exclude = ["shared.spec.ts"],
39+
),
40+
deps = [
41+
":harness_tests_lib",
42+
":testing",
43+
"//src/material/divider",
44+
],
45+
)
46+
47+
ng_web_test_suite(
48+
name = "unit_tests",
49+
deps = [":unit_tests_lib"],
50+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {MatDividerModule} from '@angular/material/divider';
2+
import {MatDividerHarness} from './divider-harness';
3+
import {runHarnessTests} from './shared.spec';
4+
5+
describe('Non-MDC-based MatButtonHarness', () => {
6+
runHarnessTests(MatDividerModule, MatDividerHarness);
7+
});
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import {HarnessLoader} from '@angular/cdk/testing';
2+
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
3+
import {Component} from '@angular/core';
4+
import {ComponentFixture, TestBed} from '@angular/core/testing';
5+
import {MatDividerModule} from '@angular/material/divider';
6+
import {MatDividerHarness} from './divider-harness';
7+
8+
/** Shared tests to run on both the original and MDC-based dividers. */
9+
export function runHarnessTests(
10+
dividerModule: typeof MatDividerModule, dividerHarness: typeof MatDividerHarness) {
11+
let fixture: ComponentFixture<DividerHarnessTest>;
12+
let loader: HarnessLoader;
13+
14+
beforeEach(async () => {
15+
await TestBed.configureTestingModule({
16+
imports: [dividerModule],
17+
declarations: [DividerHarnessTest],
18+
}).compileComponents();
19+
20+
fixture = TestBed.createComponent(DividerHarnessTest);
21+
fixture.detectChanges();
22+
loader = TestbedHarnessEnvironment.loader(fixture);
23+
});
24+
25+
it('should load all button harnesses', async () => {
26+
const dividers = await loader.getAllHarnesses(dividerHarness);
27+
expect(dividers.length).toBe(2);
28+
});
29+
30+
it('should check if divider is inset', async () => {
31+
const dividers = await loader.getAllHarnesses(dividerHarness);
32+
expect(await dividers[0].isInset()).toBe(false);
33+
expect(await dividers[1].isInset()).toBe(true);
34+
});
35+
36+
it('should get divider orientation', async () => {
37+
const dividers = await loader.getAllHarnesses(dividerHarness);
38+
expect(await dividers[0].getOrientation()).toBe('horizontal');
39+
expect(await dividers[1].getOrientation()).toBe('vertical');
40+
});
41+
}
42+
43+
@Component({
44+
template: `
45+
<mat-divider></mat-divider>
46+
<mat-divider inset vertical></mat-divider>
47+
`
48+
})
49+
class DividerHarnessTest {}

src/material/list/testing/list-harness.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,6 @@ export class MatSelectionListHarness extends MatListHarnessBase<
263263
return new HarnessPredicate(MatSelectionListHarness, options);
264264
}
265265

266-
private _selected = this.locatorForAll(MatListOptionHarness.with({selected: true}));
267266
_itemHarness = MatListOptionHarness;
268267

269268
/** Whether the selection list is disabled. */

tools/public_api_guard/cdk/testing.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export declare class HarnessPredicate<T extends ComponentHarness> {
7373
filter(harnesses: T[]): Promise<T[]>;
7474
getDescription(): string;
7575
getSelector(): string;
76-
static stringMatches(s: string | Promise<string>, pattern: string | RegExp): Promise<boolean>;
76+
static stringMatches(value: string | null | Promise<string | null>, pattern: string | RegExp | null): Promise<boolean>;
7777
}
7878

7979
export declare type HarnessQuery<T extends ComponentHarness> = ComponentHarnessConstructor<T> | HarnessPredicate<T>;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export interface DividerHarnessFilters extends BaseHarnessFilters {
2+
}
3+
4+
export declare class MatDividerHarness extends ComponentHarness {
5+
getOrientation(): Promise<'horizontal' | 'vertical'>;
6+
isInset(): Promise<boolean>;
7+
static hostSelector: string;
8+
static with(options?: DividerHarnessFilters): HarnessPredicate<MatDividerHarness>;
9+
}
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
export interface ActionListHarnessFilters extends BaseHarnessFilters {
2+
}
3+
4+
export interface ActionListItemHarnessFilters extends BaseListItemHarnessFilters {
5+
}
6+
7+
export interface BaseListItemHarnessFilters extends BaseHarnessFilters {
8+
text?: string | RegExp;
9+
}
10+
11+
export interface ListHarnessFilters extends BaseHarnessFilters {
12+
}
13+
14+
export interface ListItemHarnessFilters extends BaseListItemHarnessFilters {
15+
}
16+
17+
export interface ListOptionHarnessFilters extends BaseListItemHarnessFilters {
18+
selected?: boolean;
19+
}
20+
21+
export interface ListSection<I> {
22+
heading?: string;
23+
items: I[];
24+
}
25+
26+
export declare class MatActionListHarness extends MatListHarnessBase<typeof MatActionListItemHarness, MatActionListItemHarness, ActionListItemHarnessFilters> {
27+
_itemHarness: typeof MatActionListItemHarness;
28+
static hostSelector: string;
29+
static with(options?: ActionListHarnessFilters): HarnessPredicate<MatActionListHarness>;
30+
}
31+
32+
export declare class MatActionListItemHarness extends MatListItemHarnessBase {
33+
blur(): Promise<void>;
34+
click(): Promise<void>;
35+
focus(): Promise<void>;
36+
static hostSelector: string;
37+
static with(options?: ActionListItemHarnessFilters): HarnessPredicate<MatActionListItemHarness>;
38+
}
39+
40+
export declare class MatListHarness extends MatListHarnessBase<typeof MatListItemHarness, MatListItemHarness, ListItemHarnessFilters> {
41+
_itemHarness: typeof MatListItemHarness;
42+
static hostSelector: string;
43+
static with(options?: ListHarnessFilters): HarnessPredicate<MatListHarness>;
44+
}
45+
46+
export declare class MatListHarnessBase<T extends (ComponentHarnessConstructor<C> & {
47+
with: (options?: BaseHarnessFilters) => HarnessPredicate<C>;
48+
}), C extends ComponentHarness, F extends BaseListItemHarnessFilters> extends ComponentHarness {
49+
protected _itemHarness: T;
50+
getItems(filters?: F): Promise<C[]>;
51+
getItemsBySubheader(filters?: F): Promise<ListSection<C>[]>;
52+
getItemsDivided(filters?: F): Promise<C[][]>;
53+
getItemsSubheadersAndDividers(filters: {
54+
item: false;
55+
subheader: false;
56+
divider: false;
57+
}): Promise<[]>;
58+
getItemsSubheadersAndDividers(filters: {
59+
item?: F | false;
60+
subheader: false;
61+
divider: false;
62+
}): Promise<C[]>;
63+
getItemsSubheadersAndDividers(filters: {
64+
item: false;
65+
subheader?: SubheaderHarnessFilters | false;
66+
divider: false;
67+
}): Promise<MatSubheaderHarness[]>;
68+
getItemsSubheadersAndDividers(filters: {
69+
item: false;
70+
subheader: false;
71+
divider?: DividerHarnessFilters | false;
72+
}): Promise<MatDividerHarness[]>;
73+
getItemsSubheadersAndDividers(filters: {
74+
item?: F | false;
75+
subheader?: SubheaderHarnessFilters | false;
76+
divider: false;
77+
}): Promise<(C | MatSubheaderHarness)[]>;
78+
getItemsSubheadersAndDividers(filters: {
79+
item?: F | false;
80+
subheader: false;
81+
divider?: false | DividerHarnessFilters;
82+
}): Promise<(C | MatDividerHarness)[]>;
83+
getItemsSubheadersAndDividers(filters: {
84+
item: false;
85+
subheader?: false | SubheaderHarnessFilters;
86+
divider?: false | DividerHarnessFilters;
87+
}): Promise<(MatSubheaderHarness | MatDividerHarness)[]>;
88+
getItemsSubheadersAndDividers(filters?: {
89+
item?: F | false;
90+
subheader?: SubheaderHarnessFilters | false;
91+
divider?: DividerHarnessFilters | false;
92+
}): Promise<(C | MatSubheaderHarness | MatDividerHarness)[]>;
93+
}
94+
95+
export declare class MatListItemHarness extends MatListItemHarnessBase {
96+
static hostSelector: string;
97+
static with(options?: ListItemHarnessFilters): HarnessPredicate<MatListItemHarness>;
98+
}
99+
100+
export declare class MatListItemHarnessBase extends ComponentHarness {
101+
getHarnessLoaderForContent(): Promise<HarnessLoader>;
102+
getLines(): Promise<string[]>;
103+
getText(): Promise<string>;
104+
hasAvatar(): Promise<boolean>;
105+
hasIcon(): Promise<boolean>;
106+
}
107+
108+
export declare class MatListOptionHarness extends MatListItemHarnessBase {
109+
blur(): Promise<void>;
110+
check(): Promise<void>;
111+
focus(): Promise<void>;
112+
getCheckboxPosition(): Promise<'before' | 'after'>;
113+
isDisabled(): Promise<boolean>;
114+
isSelected(): Promise<boolean>;
115+
toggle(): Promise<void>;
116+
uncheck(): Promise<void>;
117+
static hostSelector: string;
118+
static with(options?: ListOptionHarnessFilters): HarnessPredicate<MatListOptionHarness>;
119+
}
120+
121+
export declare class MatNavListHarness extends MatListHarnessBase<typeof MatNavListItemHarness, MatNavListItemHarness, NavListItemHarnessFilters> {
122+
_itemHarness: typeof MatNavListItemHarness;
123+
static hostSelector: string;
124+
static with(options?: NavListHarnessFilters): HarnessPredicate<MatNavListHarness>;
125+
}
126+
127+
export declare class MatNavListItemHarness extends MatListItemHarnessBase {
128+
blur(): Promise<void>;
129+
click(): Promise<void>;
130+
focus(): Promise<void>;
131+
getHref(): Promise<string | null>;
132+
static hostSelector: string;
133+
static with(options?: NavListItemHarnessFilters): HarnessPredicate<MatNavListItemHarness>;
134+
}
135+
136+
export declare class MatSelectionListHarness extends MatListHarnessBase<typeof MatListOptionHarness, MatListOptionHarness, ListOptionHarnessFilters> {
137+
_itemHarness: typeof MatListOptionHarness;
138+
checkItems(...filters: ListOptionHarnessFilters[]): Promise<void>;
139+
isDisabled(): Promise<boolean>;
140+
uncheckItems(...filters: ListItemHarnessFilters[]): Promise<void>;
141+
static hostSelector: string;
142+
static with(options?: SelectionListHarnessFilters): HarnessPredicate<MatSelectionListHarness>;
143+
}
144+
145+
export declare class MatSubheaderHarness extends ComponentHarness {
146+
getText(): Promise<string>;
147+
static hostSelector: string;
148+
static with(options?: SubheaderHarnessFilters): HarnessPredicate<MatSubheaderHarness>;
149+
}
150+
151+
export interface NavListHarnessFilters extends BaseHarnessFilters {
152+
}
153+
154+
export interface NavListItemHarnessFilters extends BaseListItemHarnessFilters {
155+
href?: string | RegExp | null;
156+
}
157+
158+
export interface SelectionListHarnessFilters extends BaseHarnessFilters {
159+
}
160+
161+
export interface SubheaderHarnessFilters extends BaseHarnessFilters {
162+
text?: string | RegExp;
163+
}

0 commit comments

Comments
 (0)