From be3be1458618272d8398d50db2172bc66987a9b4 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Sun, 24 Mar 2019 20:10:09 +0000 Subject: [PATCH] add failing test --- __tests__/resolveConfig.test.js | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/__tests__/resolveConfig.test.js b/__tests__/resolveConfig.test.js index 58cadc288..07fbcdff6 100644 --- a/__tests__/resolveConfig.test.js +++ b/__tests__/resolveConfig.test.js @@ -758,6 +758,66 @@ test('the theme function can use a default value if the key is missing', () => { }) }) +test('the theme function can resolve function values', () => { + const userConfig = { + theme: { + backgroundColor: theme => ({ + orange: 'orange', + ...theme('colors'), + }), + borderColor: theme => theme('backgroundColor'), + }, + } + + const defaultConfig = { + prefix: '-', + important: false, + separator: ':', + theme: { + colors: { + red: 'red', + green: 'green', + blue: 'blue', + }, + }, + variants: { + backgroundColor: ['responsive', 'hover', 'focus'], + borderColor: ['responsive', 'hover', 'focus'], + }, + } + + const result = resolveConfig([userConfig, defaultConfig]) + + expect(result).toEqual({ + prefix: '-', + important: false, + separator: ':', + theme: { + colors: { + red: 'red', + green: 'green', + blue: 'blue', + }, + backgroundColor: { + orange: 'orange', + red: 'red', + green: 'green', + blue: 'blue', + }, + borderColor: { + orange: 'orange', + red: 'red', + green: 'green', + blue: 'blue', + }, + }, + variants: { + backgroundColor: ['responsive', 'hover', 'focus'], + borderColor: ['responsive', 'hover', 'focus'], + }, + }) +}) + test('theme values in the extend section are lazily evaluated', () => { const userConfig = { theme: {