Skip to content

Commit 9e835e4

Browse files
committed
Fixed failing tests and added additional coverage
1 parent 92b3b0c commit 9e835e4

5 files changed

Lines changed: 49 additions & 4 deletions

File tree

__tests__/cli.test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ describe('cli', () => {
4444

4545
it('creates a full Tailwind config file', () => {
4646
return cli(['init', '--full']).then(() => {
47-
expect(utils.writeFile.mock.calls[0][1]).toEqual(defaultConfigFixture)
47+
expect(utils.writeFile.mock.calls[0][1]).toEqual(
48+
utils.replaceAll(defaultConfigFixture, constants.replacements)
49+
)
4850
})
4951
})
5052
})

__tests__/cli.utils.test.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,30 @@ describe('cli utils', () => {
109109
expect(result).toEqual(expect.stringContaining('__comment_docblock_important__'))
110110
})
111111
})
112+
113+
describe('replaceAll', () => {
114+
it('replaces strings', () => {
115+
const result = utils.replaceAll('test', [['test', 'pass']])
116+
117+
expect(result).toEqual('pass')
118+
})
119+
120+
it('replaces regex patterns', () => {
121+
const result = utils.replaceAll('TEST', [[/test/i, 'pass']])
122+
123+
expect(result).toEqual('pass')
124+
})
125+
126+
it('replaces all matches', () => {
127+
const result = utils.replaceAll('test test', [['test', 'pass']])
128+
129+
expect(result).toEqual('pass pass')
130+
})
131+
132+
it('replaces all multiple patterns', () => {
133+
const result = utils.replaceAll('hello world', [['hello', 'greetings'], ['world', 'earth']])
134+
135+
expect(result).toEqual('greetings earth')
136+
})
137+
})
112138
})

src/cli/commands/init.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,9 @@ export function run(cliParams, cliOptions) {
4242
utils.exists(file) && utils.die(chalk.bold.magenta(file), 'already exists.')
4343

4444
const stubFile = full ? constants.defaultConfigStubFile : constants.simpleConfigStubFile
45-
let stub = utils
46-
.readFile(stubFile)
47-
.replace("require('../plugins/container')", "require('tailwindcss/plugins/container')")
45+
let stub = utils.readFile(stubFile)
4846

47+
stub = utils.replaceAll(stub, constants.replacements)
4948
noComments && (stub = utils.stripBlockComments(stub))
5049

5150
utils.writeFile(file, stub)

src/cli/constants.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ export const cli = 'tailwind'
44
export const defaultConfigFile = 'tailwind.js'
55
export const defaultConfigStubFile = path.resolve(__dirname, '../../stubs/defaultConfig.stub.js')
66
export const simpleConfigStubFile = path.resolve(__dirname, '../../stubs/simpleConfig.stub.js')
7+
8+
export const replacements = [
9+
["require('../plugins/container')", "require('tailwindcss/plugins/container')"],
10+
]

src/cli/utils.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,17 @@ export function stripBlockComments(input) {
136136
.trim()
137137
.concat('\n')
138138
}
139+
140+
/**
141+
* Performs string replacement for multiple patterns.
142+
*
143+
* @param {string} input
144+
* @param {array} replacements
145+
* @return {string}
146+
*/
147+
export function replaceAll(input, replacements) {
148+
return replacements.reduce(
149+
(str, [pattern, replacement]) => str.split(pattern).join(replacement),
150+
input
151+
)
152+
}

0 commit comments

Comments
 (0)