[
    {
        "title": "module as a function",
        "input": {
            "fileName": "test/extractor-fixtures/amd/module-as-a-function.js"
        },
        "expected": [
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./root_two",
                "resolved": "test/extractor-fixtures/amd/root_two.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            }
        ]
    },
    {
        "title": "module with a name",
        "input": {
            "fileName": "test/extractor-fixtures/amd/module-with-a-name.js"
        },
        "expected": [
            {
                "module": "./module-as-a-function",
                "resolved": "test/extractor-fixtures/amd/module-as-a-function.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            }
        ]
    },
    {
        "title": "root module require",
        "input": {
            "fileName": "test/extractor-fixtures/amd/root-module-require.js"
        },
        "expected": [
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./root_two",
                "resolved": "test/extractor-fixtures/amd/root_two.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./sub/dir",
                "resolved": "test/extractor-fixtures/amd/sub/dir.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true,
                "valid": true,
                "valid": true,
                "valid": true
            }
        ]
    },
    {
        "title": "simplified commonjs wrapper - amd only",
        "input": {
            "fileName": "test/extractor-fixtures/amd/simplified-commonjs-wrapper.js",
            "moduleSystems": ["amd"]
        },
        "expected": [
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true,
                "valid": true,
                "valid": true
            },
            {
                "module": "./root_two",
                "resolved": "test/extractor-fixtures/amd/root_two.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true,
                "valid": true
            }
        ]
    },
    {
        "title": "simplified commonjs wrapper - amd and cjs both",
        "input": {
            "fileName": "test/extractor-fixtures/amd/simplified-commonjs-wrapper.js"
        },
        "expected": [
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./root_one",
                "resolved": "test/extractor-fixtures/amd/root_one.js",
                "moduleSystem": "cjs",
                "coreModule": false,
                "followable": true,
                "valid": true,
                "valid": true
            },
            {
                "module": "./root_two",
                "resolved": "test/extractor-fixtures/amd/root_two.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            },
            {
                "module": "./root_two",
                "resolved": "test/extractor-fixtures/amd/root_two.js",
                "moduleSystem": "cjs",
                "coreModule": false,
                "followable": true,
                "valid": true
            }
        ]
    },
    {
        "title": "require a non-relative module",
        "input": {
            "fileName": "test/extractor-fixtures/amd/requires-non-relative-module.js"
        },
        "expected": [
            {
                "module": "lodash",
                "resolved": "lodash",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": false,
                "valid": true
            },
            {
                "module": "other-module-in-the-config",
                "resolved": "other-module-in-the-config",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": false,
                "valid": true,
                "valid": true
            },
            {
                "module": "sub/local-module-in-drag",
                "resolved": "test/extractor-fixtures/amd/sub/local-module-in-drag.js",
                "moduleSystem": "amd",
                "coreModule": false,
                "followable": true,
                "valid": true
            }
        ]
    }
]
