diff --git a/__tests__/applyAtRule.test.js b/__tests__/applyAtRule.test.js index 98a47b9d2..52cf6f795 100644 --- a/__tests__/applyAtRule.test.js +++ b/__tests__/applyAtRule.test.js @@ -14,6 +14,15 @@ test("it copies a class's declarations into itself", () => { }) }) +test('it removes important from applied classes', () => { + const output = '.a { color: red !important; } .b { color: red; }' + + return run('.a { color: red !important; } .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', () => { return run('.b { @apply .a; }').catch(e => { expect(e).toMatchObject({ name: 'CssSyntaxError' }) diff --git a/src/lib/substituteClassApplyAtRules.js b/src/lib/substituteClassApplyAtRules.js index 7517bbe08..7305a6001 100644 --- a/src/lib/substituteClassApplyAtRules.js +++ b/src/lib/substituteClassApplyAtRules.js @@ -58,6 +58,10 @@ export default function() { }) }) + decls.forEach(decl => { + decl.important = false + }) + atRule.before(decls) atRule.params = customProperties.join(' ')