Files
NapCatQQ/.pnpm-store/v3/files/87/672b75b564735f8bd21716814f517d154750be5407a64d17c73672af878e350305fd86a58cdb35715600fe240e00215529695be91fdda86dcc396388ea6cc0
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

71 lines
2.1 KiB
Plaintext

import { compile } from '../compile';
const template = (str, ...defs) => {
return (props) => compile(str, defs, props);
};
describe('compile', () => {
it('simple', () => {
expect(template`prop: 1;`({})).toEqual('prop: 1;');
});
it('vnode', () => {
expect(template`prop: 1; ${() => ({ props: { className: 'class' } })}`({})).toEqual(
'prop: 1; .class'
);
// Empty or falsy
expect(template`prop: 1; ${() => ({ props: { foo: 1 } })}`({})).toEqual('prop: 1; ');
});
it('vanilla classname', () => {
expect(template`prop: 1; ${() => 'go0ber'}`({})).toEqual('prop: 1; .go0ber');
});
it('value interpolations', () => {
// This interpolations are testing the ability to interpolate thruty and falsy values
expect(template`prop: 1; ${() => 0},${() => undefined},${() => null},${2}`({})).toEqual(
'prop: 1; 0,,,2'
);
const tmpl = template`
background: dodgerblue;
${(props) =>
props.padding === 'bloo' &&
`
padding: ${props.padding}px;
`}
border: 1px solid blue;
`;
expect(tmpl({})).toEqual(`
background: dodgerblue;
border: 1px solid blue;
`);
});
describe('objects', () => {
it('normal', () => {
expect(template`prop: 1;${(p) => ({ color: p.color })}`({ color: 'red' })).toEqual(
'prop: 1;color:red;'
);
});
it('styled-system', () => {
const color = (p) => ({ color: p.color });
const background = (p) => ({ backgroundColor: p.backgroundColor });
const props = { color: 'red', backgroundColor: 'blue' };
const res = template`
prop: 1;
${color}
${background}
`(props);
expect(res.replace(/([\s|\n]+)/gm, '').trim()).toEqual(
'prop:1;color:red;background-color:blue;'
);
});
});
});