flitbit / diff

Javascript utility for calculating deep difference, capturing changes, and applying changes across objects; for nodejs and the browser.
MIT License
2.99k stars 213 forks source link

Cannot read property 'hasOwnProperty' of undefined , is use react 15 and babel 6 and jest enzyme #158

Open mostafaalkama opened 5 years ago

mostafaalkama commented 5 years ago

image

babel.config.js module.exports = { env: { test: { presets: [ [ "@babel/preset-env", { modules: "commonjs", debug: false } ], "@babel/preset-react" ], plugins: [ "@babel/plugin-syntax-dynamic-import", "@babel/plugin-proposal-class-properties", '@babel/plugin-transform-runtime', 'transform-es2015-modules-commonjs', 'babel-plugin-dynamic-import-node', ] }, production: { presets: [ [ "@babel/preset-env", {modules: false} ], "@babel/preset-react" ], plugins: [ "@babel/plugin-syntax-dynamic-import", "@babel/plugin-proposal-class-properties" ] }, development: { presets: [ [ "@babel/preset-env", {modules: false} ], "@babel/preset-react" ], plugins: [ "@babel/plugin-syntax-dynamic-import", "@babel/plugin-proposal-class-properties", "@babel/plugin-proposal-export-default-from" ] } } };

jest.config.js

/ eslint-disable max-len / /*

module.exports = {

/*
 * All imported modules in your tests should be mocked automatically
 * automock: false,
 */

/*
 * Stop running tests after the first failure
 * bail: false,
 */

/*
 * Respect "browser" field in package.json when resolving modules
 * browser: false,
 */

/*
 * The directory where Jest should store its cached dependency information
 * cacheDirectory: "C:\\Users\\VenD\\AppData\\Local\\Temp\\jest",
 */

// Automatically clear mock calls and instances between every test
clearMocks: true,

/*
 * Indicates whether the coverage information should be collected while executing the test
 * collectCoverage: true,
 */

// An array of glob patterns indicating a set of files for which coverage information should be collected
collectCoverageFrom: [
  "**/src/**.{js,jsx,mjs}",
  "!src/index.js"
],

// The directory where Jest should output its coverage files
coverageDirectory: "coverage",

/*
 * An array of regexp pattern strings used to skip coverage collection
 * coveragePathIgnorePatterns: [
 *   "\\\\node_modules\\\\"
 * ],
 */

/*
 * A list of reporter names that Jest uses when writing coverage reports
 * coverageReporters: [
 *   "json",
 *   "text",
 *   "lcov",
 *   "clover"
 * ],
 */

/*
 * An object that configures minimum threshold enforcement for coverage results
 * coverageThreshold: null,
 */

/*
 * Make calling deprecated APIs throw helpful error messages
 * errorOnDeprecated: false,
 */

/*
 * Force coverage collection from ignored files usin a array of glob patterns
 * forceCoverageMatch: [],
 */

/*
 * A path to a module which exports an async function that is triggered once before all test suites
 * globalSetup: null,
 */

/*
 * A path to a module which exports an async function that is triggered once after all test suites
 * globalTeardown: null,
 */

/*
 * A set of global variables that need to be available in all test environments
 * globals: {},
 */

/*
 * An array of directory names to be searched recursively up from the requiring module's location
 * moduleDirectories: [
 *   "node_modules"
 * ],
 */

// An array of file extensions your modules use
moduleFileExtensions: [
  "js",
  "json",
  "jsx"
],

// A map from regular expressions to module names that allow to stub out resources with a single module
moduleNameMapper: {
  "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/assets.config.js",
  "\\.(css|less)$": "<rootDir>/assets.config.js"
},

/*
 * An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
 * modulePathIgnorePatterns: [],
 */

/*
 * Activates notifications for test results
 * notify: false,
 */

/*
 * An enum that specifies notification mode. Requires { notify: true }
 * notifyMode: "always",
 */

/*
 * A preset that is used as a base for Jest's configuration
 * preset: null,
 */

/*
 * Run tests from one or more projects
 * projects: null,
 */

/*
 * Use this configuration option to add custom reporters to Jest
 * reporters: undefined,
 */

/*
 * Automatically reset mock state between every test
 * resetMocks: false,
 */

/*
 * Reset the module registry before running each individual test
 * resetModules: false,
 */

/*
 * A path to a custom resolver
 * resolver: null,
 */

/*
 * Automatically restore mock state between every test
 * restoreMocks: false,
 */

/*
 * The root directory that Jest should scan for tests and modules within
 * rootDir: null,
 */

/*
 * A list of paths to directories that Jest should use to search for files in
 * roots: [
 *   "<rootDir>"
 * ],
 */

/*
 * Allows you to use a custom runner instead of Jest's default test runner
 * runner: "jest-runner",
 */

// The paths to modules that run some code to configure or set up the testing environment before each test
setupFiles: ["<rootDir>/enzyme.config.js"],

/*
 * The path to a module that runs some code to configure or set up the testing framework before each test
 * setupTestFrameworkScriptFile: "<rootDir>/config/setupTest.js",
 */

// A list of paths to snapshot serializer modules Jest should use for snapshot testing
snapshotSerializers: ["enzyme-to-json/serializer"],

// The test environment that will be used for testing
testEnvironment: "jsdom",

/*
 * Options that will be passed to the testEnvironment
 * testEnvironmentOptions: {},
 */

/*
 * Adds a location field to test results
 * testLocationInResults: false,
 */

// The glob patterns Jest uses to detect test files
testMatch: [
  "**/__tests__/**/*.js?(x)",
  "**/?(*.)+(spec|test).js?(x)"
],

// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
testPathIgnorePatterns: ["\\\\node_modules\\\\"],

/*
 * The regexp pattern Jest uses to detect test files
 * testRegex: "",
 */

/*
 * This option allows the use of a custom results processor
 * testResultsProcessor: null,
 */

/*
 * This option allows use of a custom test runner
 * testRunner: "jasmine2",
 */

// This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
testURL: "http://localhost",

/*
 * Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
 * timers: "real",
 */

// A map from regular expressions to paths to transformers
transform: {"^.+\\.js$": "babel-jest"},

// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
transformIgnorePatterns: [
    "/node_modules/"
],

/*
 * An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
 * unmockedModulePathPatterns: undefined,
 */

// Indicates whether each individual test should be reported during the run
verbose: true

/*
 * An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
 * watchPathIgnorePatterns: [],
 */

/*
 * Whether to use watchman for file crawling
 * watchman: true,
 */

};

flitbit commented 5 years ago

I don't follow. The posted stack trace nor the posted code reference flitbit/diff in a way that I can see. Please post information that ties the error that you're seeing to this module.

nickhallph commented 4 years ago

thanks for this link google :+1: #useful