Merge pull request #179 from nothingworksinc/fix-tests

Fix tests
This commit is contained in:
Adam Wathan 2017-10-16 12:35:22 -04:00 committed by GitHub
commit 2699b96cfd
2 changed files with 54 additions and 1 deletions

View File

@ -0,0 +1,53 @@
import postcss from 'postcss'
import plugin from '../src/lib/substituteClassApplyAtRules'
function run(input, opts) {
return postcss([plugin(opts)]).process(input)
}
test("it copies a class's declarations into itself", () => {
const output = '.a { color: red; } .b { color: red; }'
return run('.a { color: red; } .b { @apply .a; }', {}).then(result => {
expect(result.css).toEqual(output)
expect(result.warnings().length).toBe(0)
})
})
test("it doesn't copy a media query definition into itself", () => {
const output = `.a {
color: red;
}
@media (min-width: 300px) {
.a { color: blue; }
}
.b {
color: red;
}`
return run(
`.a {
color: red;
}
@media (min-width: 300px) {
.a { color: blue; }
}
.b {
@apply .a;
}`,
{}
).then(result => {
expect(result.css).toEqual(output)
expect(result.warnings().length).toBe(0)
})
})
test('it fails if the class does not exist', () => {
run('.b { @apply .a; }', {}).catch(error => {
expect(error.reason).toEqual('No .a class found.')
})
})

View File

@ -4,7 +4,7 @@ export default function findMixin(css, mixin, onError) {
const matches = []
css.walkRules(rule => {
if (rule.selectors.includes(mixin)) {
if (rule.selectors.includes(mixin) && rule.parent.type == 'root') {
matches.push(rule)
}
})