112 lines
2.4 KiB
JavaScript
112 lines
2.4 KiB
JavaScript
import expect from 'expect.js'
|
|
import {stripIndent} from 'common-tags'
|
|
import {create} from 'jss'
|
|
import pluginExpand from '../../jss-plugin-expand'
|
|
import pluginFunction from '.'
|
|
|
|
const settings = {createGenerateId: () => rule => `${rule.key}-id`}
|
|
|
|
describe('jss-plugin-rule-value-function: plugin-expand', () => {
|
|
let jss
|
|
|
|
beforeEach(() => {
|
|
jss = create(settings).use(pluginFunction(), pluginExpand())
|
|
})
|
|
|
|
describe('expanding in fn values', () => {
|
|
let sheet
|
|
|
|
beforeEach(() => {
|
|
sheet = jss
|
|
.createStyleSheet(
|
|
{
|
|
a: {
|
|
border: props => ({
|
|
top: props.border,
|
|
bottom: props.border
|
|
})
|
|
}
|
|
},
|
|
{link: true}
|
|
)
|
|
.attach()
|
|
})
|
|
|
|
afterEach(() => {
|
|
sheet.detach()
|
|
})
|
|
|
|
it.skip('should return correct .toString()', () => {
|
|
sheet.update({border: '1px'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-top: 1px;
|
|
border-bottom: 1px;
|
|
}
|
|
`)
|
|
})
|
|
|
|
it.skip('should handle when updating multiple times', () => {
|
|
sheet.update({border: '1px'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-top: 1px;
|
|
border-bottom: 1px;
|
|
}
|
|
`)
|
|
|
|
sheet.update({border: '5px'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-top: 5px;
|
|
border-bottom: 5px;
|
|
}
|
|
`)
|
|
})
|
|
})
|
|
|
|
describe('expanding in fn rules', () => {
|
|
let sheet
|
|
|
|
beforeEach(() => {
|
|
sheet = jss
|
|
.createStyleSheet(
|
|
{
|
|
a: props => ({border: {color: props.color}})
|
|
},
|
|
{link: true}
|
|
)
|
|
.attach()
|
|
})
|
|
|
|
afterEach(() => {
|
|
sheet.detach()
|
|
})
|
|
|
|
it('should return correct .toString()', () => {
|
|
sheet.update({color: 'red'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-color: red;
|
|
}
|
|
`)
|
|
})
|
|
|
|
it('should handle updating multiple times', () => {
|
|
sheet.update({color: 'red'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-color: red;
|
|
}
|
|
`)
|
|
|
|
sheet.update({color: 'blue'})
|
|
expect(sheet.toString()).to.be(stripIndent`
|
|
.a-id {
|
|
border-color: blue;
|
|
}
|
|
`)
|
|
})
|
|
})
|
|
})
|