/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @emails oncall+react_native
 * @flow strict-local
 * @format
 */

'use strict';

const fixtures = require('../__test_fixtures__/fixtures.js');
const generator = require('../GenerateViewConfigJs.js');

describe('GenerateViewConfigJs', () => {
  Object.keys(fixtures)
    .sort()
    .forEach(fixtureName => {
      const fixture = fixtures[fixtureName];

      it(`can generate fixture ${fixtureName}`, () => {
        expect(generator.generate(fixtureName, fixture)).toMatchSnapshot();
      });
    });

  it('can generate fixture with a deprecated view config name', () => {
    expect(
      generator.generate('DEPRECATED_VIEW_CONFIG_NAME', {
        modules: {
          Component: {
            components: {
              NativeComponentName: {
                paperComponentNameDeprecated: 'DeprecatedNativeComponentName',
                extendsProps: [
                  {
                    type: 'ReactNativeBuiltInType',
                    knownTypeName: 'ReactNativeCoreViewProps',
                  },
                ],
                events: [],
                props: [],
                commands: [],
              },
            },
          },
        },
      }),
    ).toMatchSnapshot();
  });
});

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @emails oncall+react_native
 * @flow strict-local
 * @format
 */

'use strict';

const fixtures = require('../__test_fixtures__/fixtures.js');
const generator = require('../GenerateViewConfigJs.js');

describe('GenerateViewConfigJs', () => {
  Object.keys(fixtures)
    .sort()
    .forEach(fixtureName => {
      const fixture = fixtures[fixtureName];

      it(`can generate fixture ${fixtureName}`, () => {
        expect(generator.generate(fixtureName, fixture)).toMatchSnapshot();
      });
    });

  it('can generate fixture with a deprecated view config name', () => {
    expect(
      generator.generate('DEPRECATED_VIEW_CONFIG_NAME', {
        modules: {
          Component: {
            type: 'Component',
            components: {
              NativeComponentName: {
                paperComponentNameDeprecated: 'DeprecatedNativeComponentName',
                extendsProps: [
                  {
                    type: 'ReactNativeBuiltInType',
                    knownTypeName: 'ReactNativeCoreViewProps',
                  },
                ],
                events: [],
                props: [],
                commands: [],
              },
            },
          },
        },
      }),
    ).toMatchSnapshot();
  });
});

Update ViewConfig generator test to follow new ComponentSchema
Update ViewConfig generator test to follow new ComponentSchema

Summary:
NOTE: Flow and Jest won't pass on this diff. Sandcastle, should, however, be green on D24236405 (i.e: the tip of this stack).

Changelog: [Internal]

(Note: this ignores all push blocking failures!)

Reviewed By: PeteTheHeat

Differential Revision: D24236504

fbshipit-source-id: 0ca70101a855fb713fa15ed63849b138eb73dc6c
