From e1b22684c89cbf9d63fb409e5c17ab683a948844 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 23 Apr 2021 23:48:56 +0200 Subject: [PATCH 1/7] [MenuItem] Fix too wide classes type --- packages/material-ui/src/MenuItem/MenuItem.d.ts | 2 +- packages/material-ui/src/MenuItem/MenuItem.test.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/material-ui/src/MenuItem/MenuItem.d.ts b/packages/material-ui/src/MenuItem/MenuItem.d.ts index bbde6f5fbe9edf..b8d312bd2fd468 100644 --- a/packages/material-ui/src/MenuItem/MenuItem.d.ts +++ b/packages/material-ui/src/MenuItem/MenuItem.d.ts @@ -9,7 +9,7 @@ export type MenuItemClassKey = keyof NonNullable { props: P & - DistributiveOmit['props'], 'children'> & { + DistributiveOmit['props'], 'children' | 'classes'> & { /** * The content of the component. */ diff --git a/packages/material-ui/src/MenuItem/MenuItem.test.js b/packages/material-ui/src/MenuItem/MenuItem.test.js index 59fd11b7e867d7..a61b0ef91ffe5e 100644 --- a/packages/material-ui/src/MenuItem/MenuItem.test.js +++ b/packages/material-ui/src/MenuItem/MenuItem.test.js @@ -161,9 +161,12 @@ describe('', () => { describe('prop: ListItemClasses', () => { it('should be able to change the style of ListItem', () => { - render(); + render( + , + ); const menuitem = screen.getByRole('menuitem'); + expect(menuitem).not.to.have.class('foo'); expect(menuitem).to.have.class('bar'); }); }); From dd066e4e998aab7b2409b9e8c9655307ce4f9da5 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 23 Apr 2021 23:43:47 +0200 Subject: [PATCH 2/7] [LoadingButton] Fix too wide classes type --- .../src/LoadingButton/LoadingButton.test.js | 16 ++++++++++++++++ packages/material-ui/src/Button/Button.d.ts | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/material-ui-lab/src/LoadingButton/LoadingButton.test.js b/packages/material-ui-lab/src/LoadingButton/LoadingButton.test.js index 67c1fff367bcdd..286535c6c2fa35 100644 --- a/packages/material-ui-lab/src/LoadingButton/LoadingButton.test.js +++ b/packages/material-ui-lab/src/LoadingButton/LoadingButton.test.js @@ -33,6 +33,22 @@ describe('', () => { expect(screen.getByRole('button')).to.have.property('tabIndex', 0); }); + it('can be outlined', () => { + expect(() => { + render( + , + ); + }).toErrorDev('The key `outlined` provided to the classes prop is not implemented'); + const button = screen.getByTestId('root'); + + expect(button).to.have.class('MuiButton-outlined'); + expect(button).not.to.have.class('loading-button-outlined'); + }); + describe('prop: loading', () => { it('disables the button', () => { render(); diff --git a/packages/material-ui/src/Button/Button.d.ts b/packages/material-ui/src/Button/Button.d.ts index b9e59f701042ae..51be818deb462b 100644 --- a/packages/material-ui/src/Button/Button.d.ts +++ b/packages/material-ui/src/Button/Button.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -import { OverridableStringUnion } from '@material-ui/types'; +import { DistributiveOmit, OverridableStringUnion } from '@material-ui/types'; import { SxProps } from '@material-ui/system'; import { Theme } from '../styles'; import { ExtendButtonBase, ExtendButtonBaseTypeMap } from '../ButtonBase'; @@ -163,7 +163,10 @@ export type ButtonTypeMap< * can make extension quite tricky */ export interface ExtendButtonTypeMap { - props: M['props'] & ButtonTypeMap['props']; + props: M['props'] & + (M['props'] extends { classes?: Record } + ? DistributiveOmit + : ButtonTypeMap['props']); defaultComponent: M['defaultComponent']; } From f2b0b4500365db18a4b4ce915953e1cd58f29c7e Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 23 Apr 2021 23:30:30 +0200 Subject: [PATCH 3/7] [Link] Fix too wide classes type --- packages/material-ui/src/Link/Link.d.ts | 2 +- packages/material-ui/src/Link/Link.test.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/material-ui/src/Link/Link.d.ts b/packages/material-ui/src/Link/Link.d.ts index a05b381d6382de..4e8635f24bdd97 100644 --- a/packages/material-ui/src/Link/Link.d.ts +++ b/packages/material-ui/src/Link/Link.d.ts @@ -7,7 +7,7 @@ import { TypographyProps } from '../Typography'; export interface LinkTypeMap

{ props: P & - LinkBaseProps & { + DistributiveOmit & { /** * The content of the component. */ diff --git a/packages/material-ui/src/Link/Link.test.js b/packages/material-ui/src/Link/Link.test.js index 52ec877b61ab29..0b12987a480b54 100644 --- a/packages/material-ui/src/Link/Link.test.js +++ b/packages/material-ui/src/Link/Link.test.js @@ -37,11 +37,12 @@ describe('', () => { it('should pass props to the component', () => { const { container } = render( - + Test , ); expect(container.firstChild).to.have.class(typographyClasses.body2); + expect(container.firstChild).not.to.have.class('link-body2'); }); describe('event callbacks', () => { From 8692c466d4bc9329211ee9ebeb3aa3cb1d98638b Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 23 Apr 2021 23:26:45 +0200 Subject: [PATCH 4/7] [Card] Fix too wide classes type --- packages/material-ui/src/Card/Card.d.ts | 3 ++- packages/material-ui/src/Card/Card.test.tsx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/material-ui/src/Card/Card.d.ts b/packages/material-ui/src/Card/Card.d.ts index 7e041f668179ca..9cdf910aa4a234 100644 --- a/packages/material-ui/src/Card/Card.d.ts +++ b/packages/material-ui/src/Card/Card.d.ts @@ -1,5 +1,6 @@ import * as React from 'react'; import { SxProps } from '@material-ui/system'; +import { DistributiveOmit } from '@material-ui/types'; import { OverridableComponent, OverrideProps } from '@material-ui/core/OverridableComponent'; import { Theme } from '..'; import { PaperProps } from '../Paper'; @@ -8,7 +9,7 @@ export interface CardPropsColorOverrides {} export interface CardTypeMap

{ props: P & - PaperProps & { + DistributiveOmit & { /** * Override or extend the styles applied to the component. */ diff --git a/packages/material-ui/src/Card/Card.test.tsx b/packages/material-ui/src/Card/Card.test.tsx index d05385ec84778b..6f4db26180b0a9 100644 --- a/packages/material-ui/src/Card/Card.test.tsx +++ b/packages/material-ui/src/Card/Card.test.tsx @@ -20,8 +20,9 @@ describe('', () => { })); it('when raised should render Paper with 8dp', () => { - const { container } = render(); + const { container } = render(); expect(container.firstChild).to.have.class('MuiPaper-elevation8'); + expect(container.firstChild).not.to.have.class('card-elevation-8'); }); it('should support variant="outlined"', () => { From 7e0e7d6b0c0591ed2ec189730ab43d360ecd1d7b Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 23 Apr 2021 23:22:57 +0200 Subject: [PATCH 5/7] [AppBar] Fix too wide classes type --- packages/material-ui/src/AppBar/AppBar.d.ts | 2 +- packages/material-ui/src/AppBar/AppBar.test.js | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/material-ui/src/AppBar/AppBar.d.ts b/packages/material-ui/src/AppBar/AppBar.d.ts index 1260d13b2c63cb..6d130159af0795 100644 --- a/packages/material-ui/src/AppBar/AppBar.d.ts +++ b/packages/material-ui/src/AppBar/AppBar.d.ts @@ -9,7 +9,7 @@ export interface AppBarPropsColorOverrides {} export interface AppBarTypeMap

{ props: P & - DistributiveOmit & { + DistributiveOmit & { /** * Override or extend the styles applied to the component. */ diff --git a/packages/material-ui/src/AppBar/AppBar.test.js b/packages/material-ui/src/AppBar/AppBar.test.js index 7fd26c288ee66d..a6585b2b4ed5d0 100644 --- a/packages/material-ui/src/AppBar/AppBar.test.js +++ b/packages/material-ui/src/AppBar/AppBar.test.js @@ -1,6 +1,6 @@ import * as React from 'react'; import { expect } from 'chai'; -import { createMount, createClientRender, describeConformanceV5 } from 'test/utils'; +import { createMount, createClientRender, describeConformanceV5, screen } from 'test/utils'; import AppBar, { appBarClasses as classes } from '@material-ui/core/AppBar'; import Paper from '@material-ui/core/Paper'; @@ -44,6 +44,18 @@ describe('', () => { expect(appBar).to.have.class(classes.colorSecondary); }); + it('should change elevation', () => { + render( + + Hello World + , + ); + + const appBar = screen.getByTestId('root'); + expect(appBar).not.to.have.class(classes.elevation5); + expect(appBar).not.to.have.class('app-bar-elevation-5'); + }); + describe('Dialog', () => { it('should add a .mui-fixed class', () => { const { container } = render(Hello World); From 4e3fceb647c901e8c6f921ca0c5051b322c7b8c5 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Sat, 24 Apr 2021 00:15:37 +0200 Subject: [PATCH 6/7] fix type issues --- packages/material-ui/src/Card/Card.test.tsx | 10 +++++++++- packages/material-ui/src/MenuItem/MenuItem.test.js | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/material-ui/src/Card/Card.test.tsx b/packages/material-ui/src/Card/Card.test.tsx index 6f4db26180b0a9..18d222921243c2 100644 --- a/packages/material-ui/src/Card/Card.test.tsx +++ b/packages/material-ui/src/Card/Card.test.tsx @@ -20,7 +20,15 @@ describe('', () => { })); it('when raised should render Paper with 8dp', () => { - const { container } = render(); + const { container } = render( + , + ); expect(container.firstChild).to.have.class('MuiPaper-elevation8'); expect(container.firstChild).not.to.have.class('card-elevation-8'); }); diff --git a/packages/material-ui/src/MenuItem/MenuItem.test.js b/packages/material-ui/src/MenuItem/MenuItem.test.js index a61b0ef91ffe5e..601dd1f64c98b5 100644 --- a/packages/material-ui/src/MenuItem/MenuItem.test.js +++ b/packages/material-ui/src/MenuItem/MenuItem.test.js @@ -162,7 +162,14 @@ describe('', () => { describe('prop: ListItemClasses', () => { it('should be able to change the style of ListItem', () => { render( - , + , ); const menuitem = screen.getByRole('menuitem'); From 30cd71e0ebb0c5275d473d0f3bb3d8c55bb6e924 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Sat, 24 Apr 2021 13:25:19 +0200 Subject: [PATCH 7/7] bump argos