|
1 |
| -import { test } from 'vitest' |
| 1 | +import { expect, test } from 'vitest' |
2 | 2 | import { withFixture } from '../common'
|
| 3 | +import { css, defineTest } from '../../src/testing' |
| 4 | +import { createClient } from '../utils/client' |
3 | 5 |
|
4 | 6 | withFixture('basic', (c) => {
|
5 | 7 | async function testHover(
|
@@ -396,7 +398,14 @@ withFixture('v4/basic', (c) => {
|
396 | 398 | expected: {
|
397 | 399 | contents: {
|
398 | 400 | kind: 'markdown',
|
399 |
| - value: ['```plaintext', '80rem /* 1280px */', '```'].join('\n'), |
| 401 | + value: [ |
| 402 | + // |
| 403 | + '```css', |
| 404 | + '@theme {', |
| 405 | + ' --breakpoint-xl: 80rem /* 1280px */;', |
| 406 | + '}', |
| 407 | + '```', |
| 408 | + ].join('\n'), |
400 | 409 | },
|
401 | 410 | range: {
|
402 | 411 | start: { line: 0, character: 23 },
|
@@ -544,3 +553,72 @@ withFixture('v4/path-mappings', (c) => {
|
544 | 553 | },
|
545 | 554 | })
|
546 | 555 | })
|
| 556 | + |
| 557 | +defineTest({ |
| 558 | + name: 'Can hover showing theme values used in var(…) and theme(…) functions', |
| 559 | + fs: { |
| 560 | + 'app.css': css` |
| 561 | + @import 'tailwindcss'; |
| 562 | + `, |
| 563 | + }, |
| 564 | + |
| 565 | + prepare: async ({ root }) => ({ client: await createClient({ root }) }), |
| 566 | + |
| 567 | + handle: async ({ client }) => { |
| 568 | + let doc = await client.open({ |
| 569 | + lang: 'css', |
| 570 | + text: css` |
| 571 | + .foo { |
| 572 | + color: theme(--color-black); |
| 573 | + } |
| 574 | + .bar { |
| 575 | + color: var(--color-black); |
| 576 | + } |
| 577 | + `, |
| 578 | + }) |
| 579 | + |
| 580 | + // color: theme(--color-black); |
| 581 | + // ^ |
| 582 | + let hoverTheme = await doc.hover({ line: 1, character: 18 }) |
| 583 | + |
| 584 | + // color: var(--color-black); |
| 585 | + // ^ |
| 586 | + let hoverVar = await doc.hover({ line: 4, character: 16 }) |
| 587 | + |
| 588 | + expect(hoverTheme).toEqual({ |
| 589 | + contents: { |
| 590 | + kind: 'markdown', |
| 591 | + value: [ |
| 592 | + // |
| 593 | + '```css', |
| 594 | + '@theme {', |
| 595 | + ' --color-black: #000;', |
| 596 | + '}', |
| 597 | + '```', |
| 598 | + ].join('\n'), |
| 599 | + }, |
| 600 | + range: { |
| 601 | + start: { line: 1, character: 15 }, |
| 602 | + end: { line: 1, character: 28 }, |
| 603 | + }, |
| 604 | + }) |
| 605 | + |
| 606 | + expect(hoverVar).toEqual({ |
| 607 | + contents: { |
| 608 | + kind: 'markdown', |
| 609 | + value: [ |
| 610 | + // |
| 611 | + '```css', |
| 612 | + '@theme {', |
| 613 | + ' --color-black: #000;', |
| 614 | + '}', |
| 615 | + '```', |
| 616 | + ].join('\n'), |
| 617 | + }, |
| 618 | + range: { |
| 619 | + start: { line: 4, character: 13 }, |
| 620 | + end: { line: 4, character: 26 }, |
| 621 | + }, |
| 622 | + }) |
| 623 | + }, |
| 624 | +}) |
0 commit comments