/** @jsxImportSource test */
import { View } from "react-native";
import { registerCSS, render, screen, setupAllComponents } from "test";
setupAllComponents();
describe("debugging", () => {
const originalLog = console.log;
beforeEach(() => {
console.log = jest.fn();
});
afterEach(() => {
console.log = originalLog;
});
test("static props", () => {
registerCSS(`.my-class {
color: hsl(0 84.2% 60.2%);
padding: 10px;
}`);
const testID = "debugClassName";
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle({
color: "#ef4444",
padding: 10,
});
expect(console.log)
.toHaveBeenCalledWith(`Debugging component.testID 'debugClassName'
{
"originalProps": {
"testID": "debugClassName",
"className": "my-class"
},
"props": {
"ref": null,
"testID": "debugClassName",
"style": {
"color": "#ef4444",
"padding": 10
}
},
"variables": {},
"containers": {}
}`);
});
test("animated props", () => {
registerCSS(`.my-class {
color: hsl(0 84.2% 60.2%);
padding: 10px;
transition: color;
}`);
const testID = "debugClassName";
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle({
color: "#ef4444",
padding: 10,
});
expect(console.log)
.toHaveBeenCalledWith(`Debugging component.testID 'debugClassName'
{
"originalProps": {
"testID": "debugClassName",
"className": "my-class"
},
"props": {
"ref": null,
"testID": "debugClassName",
"style": {
"color": "#ef4444 (animated value)",
"padding": 10
}
},
"variables": {},
"containers": {}
}`);
});
test("variables", () => {
registerCSS(`.my-class {
color: hsl(0 84.2% var(--test));
--test: 50%
}`);
const testID = "debugClassName";
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle({
color: "hsl(0, 84.2%, 50%)",
});
expect(console.log)
.toHaveBeenCalledWith(`Debugging component.testID 'debugClassName'
{
"originalProps": {
"testID": "debugClassName",
"className": "my-class"
},
"props": {
"ref": null,
"testID": "debugClassName",
"style": {
"color": "hsl(0, 84.2%, 50%)"
}
},
"variables": {
"--test": "50%"
},
"containers": {}
}`);
});
test("containers", () => {
registerCSS(`.my-class {
color: hsl(0 84.2% 60.2%);
container-name: test;
}`);
const testID = "debugClassName";
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle({
color: "#ef4444",
});
expect(console.log).toHaveBeenCalledTimes(1);
expect(console.log)
.toHaveBeenCalledWith(`Debugging component.testID 'debugClassName'
{
"originalProps": {
"testID": "debugClassName",
"className": "my-class"
},
"props": {
"ref": null,
"testID": "debugClassName",
"onPressIn": "[Function]",
"onPressOut": "[Function]",
"onHoverIn": "[Function]",
"onHoverOut": "[Function]",
"onFocus": "[Function]",
"onBlur": "[Function]",
"onPress": "[Function]",
"onLayout": "[Function]",
"style": {
"color": "#ef4444"
}
},
"variables": {},
"containers": {
"test": {
"initialRender": false,
"originalProps": "[Circular]",
"props": {},
"canUpgradeWarn": false,
"animated": 0,
"containers": 1,
"variables": 0,
"pressable": 1,
"active": false,
"hover": false,
"focus": false,
"layout": [
0,
0
]
},
"@__": "[Circular]"
}
}`);
});
});