tailwindcss/tests/completions.test.js
Robin Malfait c03f9ad600
Improve public API (#5526)
* introduce `public` folder

This can contain all of the `public` functions we want to expose.
This will be a bit nicer for example when you want to use
internal/private functions (we use some in the vscode intellisense
plugin).

* use public `resolveConfig` function

* expose resolveConfig in the root

This will use the resolveConfig we expose from the `public` folder. We
can probably generate these as well.

* make `colors` public

* make `default config` public

* make `default theme` public

* make `create plugin` public

* update to public paths

* remove `@tailwindcss/aspect-ratio` from tests

This should be tested in its own repo instead.

* remove `@tailwindcss/aspect-ratio` as a dependency

* drop `Build` step from CI

The build step is not a prerequisite anymore for running the tests. When
we want to release a new (insiders) release, the `prepublishOnly` step
will be executed for us.

Before this change, it would have been executed twice:
- Once before the tests
- Once before the actual release

* improve paths for caching purposes

* add pretest scrip for generating the plugin list

Now that we can use `SWC`, automatically generating the plugin list
before running the tests is super fast and you don't even have to think
about it anymore!
2021-09-26 12:44:13 +02:00

26 lines
907 B
JavaScript

import resolveConfig from '../src/public/resolve-config'
import { createContext } from '../src/lib/setupContextUtils'
it('should generate completions for every possible class, without variants', () => {
let config = {}
let context = createContext(resolveConfig(config))
expect(context.completions()).toBeInstanceOf(Array)
// Verify we have a `container` for the 'components' section.
expect(context.completions()).toContain('container')
// Verify we handle the DEFAULT case correctly
expect(context.completions()).toContain('border')
// Verify we handle negative values correctly
expect(context.completions()).toContain('-inset-1/4')
// Verify we list extra information for colors (!tuples)
let fromBlack = context
.completions()
.find((value) => Array.isArray(value) && value[0] === 'from-black')
expect(fromBlack).toMatchObject(['from-black', { color: '#000' }])
})