Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
view-container / src / utils / test / extractCompsFromCSS.test.tsx
Size: Mime:
import extractCompsFromCSS from '../extractCompsFromCSS'

describe('extractCompsFromCSS', () => {
  it('should work for null or empty', () => {
    expect(extractCompsFromCSS('')).toEqual([])
    expect(extractCompsFromCSS(null)).toEqual([])
  })

  it('should ignore anything before the first SC', () => {
    expect(
      extractCompsFromCSS(`
      Totally ignored, who cares.
    `)
    ).toEqual([])
  })

  it('should return a single SC', () => {
    const css = `
      /* sc-component-id: 123 */
      .foo { color: red; }
    `
    expect(extractCompsFromCSS(css)).toEqual([
      { componentId: '123', cssFromDOM: css.replace(/^\n/, '') },
    ])
  })

  it('should return a single SC with multiple lines', () => {
    const css = `
      /* sc-component-id: 123 */
      .foo { color: red; }
      .bar { color: blue; }
    `
    expect(extractCompsFromCSS(css)).toEqual([
      { componentId: '123', cssFromDOM: css.replace(/^\n/, '') },
    ])
  })

  it('should return multiple SCs with single lines', () => {
    const a = `
      /* sc-component-id: 123 */
      .foo { color: red; }
    `
    const b = `
      /* sc-component-id: 456 */
      .bar { color: blue; }
    `
    expect(extractCompsFromCSS(a + b)).toEqual([
      { componentId: '123', cssFromDOM: a.replace(/^\n/, '') + '\n' },
      { componentId: '456', cssFromDOM: b.replace(/^\n/, '') },
    ])
  })

  it('should return multiple SCs with multiple lines', () => {
    const a = `
      /* sc-component-id: 123 */
      .foo { color: red; }
      .bar { color: blue; }
    `
    const b = `
      /* sc-component-id: 456 */
      .baz { color: green; }
      .boo { color: black; }
    `
    expect(extractCompsFromCSS(a + b)).toEqual([
      { componentId: '123', cssFromDOM: a.replace(/^\n/, '') + '\n' },
      { componentId: '456', cssFromDOM: b.replace(/^\n/, '') },
    ])
  })

  it('should include whitespace after a component', () => {
    const a = `
      /* sc-component-id: 123 */
      .foo { color: red; }
      .bar { color: blue; }



    `
    const b = `
      /* sc-component-id: 456 */
      .baz { color: green; }
      .boo { color: black; }



    `
    expect(extractCompsFromCSS(a + b)).toEqual([
      { componentId: '123', cssFromDOM: a.replace(/^\n/, '') + '\n' },
      { componentId: '456', cssFromDOM: b.replace(/^\n/, '') },
    ])
  })
})