আমি উপাদান- ui এরMyStyledButton
উপর ভিত্তি করে একটি কাস্টম বোতাম লিখেছি । Button
import React from "react";
import { Button } from "@material-ui/core";
import { makeStyles } from "@material-ui/styles";
const useStyles = makeStyles({
root: {
minWidth: 100
}
});
function MyStyledButton(props) {
const buttonStyle = useStyles(props);
const { children, width, ...others } = props;
return (
<Button classes={{ root: buttonStyle.root }} {...others}>
{children}
</Button>
);
}
export default MyStyledButton;
এটি একটি থিম ব্যবহার করে স্টাইল করা হয়েছে এবং এটি backgroundColor
হলুদ রঙের শেড হতে নির্দিষ্ট করে (বিশেষত #fbb900
)
import { createMuiTheme } from "@material-ui/core/styles";
export const myYellow = "#FBB900";
export const theme = createMuiTheme({
overrides: {
MuiButton: {
containedPrimary: {
color: "black",
backgroundColor: myYellow
}
}
}
});
কম্পোনেন্ট আমার প্রধান instantiated হয় index.js
এবং আবৃত theme
।
<MuiThemeProvider theme={theme}>
<MyStyledButton variant="contained" color="primary">
Primary Click Me
</MyStyledButton>
</MuiThemeProvider>
যদি আমি Chrome DevTools এর বোতামটি পরীক্ষা করি তবে background-color
প্রত্যাশা অনুযায়ী এটি "গণনা করা"। ফায়ারফক্স ডেভটুলসের ক্ষেত্রেও এটি রয়েছে।
তবে যখন আমি একটি ঠাট্টা পরীক্ষা লিখতে চেক করতে background-color
এবং আমি ব্যবহার বোতাম DOM নোড শৈলী অনুসন্ধান getComputedStyles()
আমি পেতে transparent
ফিরে এবং পরীক্ষা ব্যর্থ।
const wrapper = mount(
<MyStyledButton variant="contained" color="primary">
Primary
</MyStyledButton>
);
const foundButton = wrapper.find("button");
expect(foundButton).toHaveLength(1);
//I want to check the background colour of the button here
//I've tried getComputedStyle() but it returns 'transparent' instead of #FBB900
expect(
window
.getComputedStyle(foundButton.getDOMNode())
.getPropertyValue("background-color")
).toEqual(myYellow);
আমি সঠিক সমস্যা, প্রজননের সর্বনিম্ন কোড এবং ব্যর্থ জেএসটি পরীক্ষার সাথে একটি কোডস্যান্ডবক্স অন্তর্ভুক্ত করেছি।
theme
পরীক্ষায় ব্যবহারের দরকার হবে না ? হিসাবে, মোড়ানো <MyStyledButton>
মধ্যে <MuiThemeProvider theme={theme}>
? বা সমস্ত উপাদানগুলিতে থিম যুক্ত করতে কিছু মোড়ক ফাংশন ব্যবহার করবেন?