/**
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */

import {shim} from './utils';

describe('ShadowCss, ng-deep', () => {
  it('should handle /deep/', () => {
    const css = shim('x /deep/ y {}', 'contenta');
    expect(css).toEqualCss('x[contenta] y {}');
  });

  it('should handle >>>', () => {
    const css = shim('x >>> y {}', 'contenta');
    expect(css).toEqualCss('x[contenta] y {}');
  });

  it('should handle ::ng-deep', () => {
    let css = '::ng-deep y {}';
    expect(shim(css, 'contenta')).toEqualCss('y {}');
    css = 'x ::ng-deep y {}';
    expect(shim(css, 'contenta')).toEqualCss('x[contenta] y {}');
    css = ':host > ::ng-deep .x {}';
    expect(shim(css, 'contenta', 'h')).toEqualCss('[h] > .x {}');
    css = ':host ::ng-deep > .x {}';
    expect(shim(css, 'contenta', 'h')).toEqualCss('[h] > .x {}');
    css = ':host > ::ng-deep > .x {}';
    expect(shim(css, 'contenta', 'h')).toEqualCss('[h] > > .x {}');
  });
});
