Related
I have a Rails application with Vue and when I installed Jest and tried to run my Menu_Filter.test.js test, I got this error. I tried many solutions, but nothing worked.
Error:
My package.json in which I configured Jest:
{
"name": "immomapper-frontend",
"version": "0.1.0",
"dependencies": {
"#rails/actioncable": "^6.0.0",
"#rails/activestorage": "^6.0.0",
"#rails/ujs": "^6.0.0",
"#rails/webpacker": "5.4.3",
"#vue/composition-api": "^1.2.4",
"#vueform/multiselect": "^2.2.0",
"#vueform/slider": "^2.0.5",
"babel": "^6.23.0",
"babel-jest": "^27.2.5",
"jest": "^27.2.5",
"leaflet": "^1.7.1",
"turbolinks": "^5.2.0",
"vue": "^2.6.14",
"vue-loader": "^15.9.8",
"vue-template-compiler": "^2.6.14",
"vue2-leaflet": "^2.7.1",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12"
},
"devDependencies": {
"#babel/core": "^7.15.8",
"#babel/preset-env": "^7.15.8",
"#vue/babel-preset-app": "^4.5.14",
"#vue/cli-plugin-unit-jest": "~4.5.0",
"#vue/test-utils": "^1.2.2",
"babel-core": "^7.0.0-bridge.0",
"vue-jest": "^3.0.7",
"webpack-dev-server": "^3"
},
"scripts": {
"test": "jest"
},
"jest": {
"roots": [
"app/javascript/spec"
],
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"moduleNameMapper": {
"^#/(.*)$'": "<rootDir>/src/$1"
},
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.vue$": "vue-jest"
},
"testEnvironment": "jsdom"
}
}
My test file:
import { mount, shallowMount } from '#vue/test-utils'
import Filter from '../components/Menu_filter'
test('Filter exists', () => {
const wrapper = mount(Filter);
expect(wrapper.is(Filter)).toBe(true)
})
Lastly, my babel.config.js:
module.exports = function(api) {
var validEnv = ['development', 'test', 'production']
var currentEnv = api.env()
var isDevelopmentEnv = api.env('development')
var isProductionEnv = api.env('production')
var isTestEnv = api.env('test')
if (!validEnv.includes(currentEnv)) {
throw new Error(
'Please specify a valid `NODE_ENV` or ' +
'`BABEL_ENV` environment variables. Valid values are "development", ' +
'"test", and "production". Instead, received: ' +
JSON.stringify(currentEnv) +
'.'
)
}
return {
presets: [
isTestEnv && [
'#babel/preset-env',
{
targets: {
node: 'current'
}
}
],
(isProductionEnv || isDevelopmentEnv) && [
'#babel/preset-env',
{
forceAllTransforms: true,
useBuiltIns: 'entry',
corejs: 3,
modules: auto,
exclude: ['transform-typeof-symbol']
}
]
].filter(Boolean),
plugins: [
'babel-plugin-macros',
'#babel/plugin-syntax-dynamic-import',
isTestEnv && 'babel-plugin-dynamic-import-node',
'#babel/plugin-transform-destructuring',
[
'#babel/plugin-proposal-class-properties',
{
loose: true
}
],
[
'#babel/plugin-proposal-object-rest-spread',
{
useBuiltIns: true
}
],
[
'#babel/plugin-proposal-private-methods',
{
loose: true
}
],
[
'#babel/plugin-proposal-private-property-in-object',
{
loose: true
}
],
[
'#babel/plugin-transform-runtime',
{
helpers: false
}
],
[
'#babel/plugin-transform-regenerator',
{
async: false
}
]
].filter(Boolean)
}
}
I don't use Typescript, I did add the yarn add babel-core#bridge --dev, I used transform, I also tried to change the jest version to 26.x.x, I added type="module" to my vue component... I don't know what the problem is.
I am having trouble with a github alert that is telling me the following:
"On September 11th, 2020 at 18:16 (UTC) your personal access token (JSPM_PRUEBA) using jspm was used as part of a query parameter to access an endpoint through the GitHub API:
Please use the Authorization HTTP header instead, as using the access_token query parameter is deprecated. If this token is being used by an app you don't have control over, be aware that it may stop working as a result of this deprecation."
The alert it is being triggered when I am doing a jspm install through a docker image that generates the dist folder with an npm install and then a jspm install inside it. The docker is being provided with a parameter JSPM_GITHUB_AUTH_TOKEN with a github PAT that is being generate and later obtained using:
jspm registry config github
jspm registry export github
I believe this is working fine because the alert is showing the right PAT name "JSPM_PRUEBA".
The actual question is, what is what I need to configure to include the access_token as a header and not as a query param while pulling the jspm dependencies.
Need some help please.
package.son
{
"name": "aleph-media-ui",
"version": "1.0.0",
"description": "aleph-media-ui",
"main": "app/app.js",
"scripts": {
"postinstall": "sh configure.sh"
},
"moduleConfig": {
"mainJs": "app/app.js",
"source": "app/**/*.js",
"templates": "app/**/*.html",
"sass": [
"styles/**/*.scss",
"styles/**/*.css"
],
"output": "dist/",
"build": "build/",
"port": "18093"
},
"jspm": {
"registry": "jspm",
"directories": {
"lib": "build"
},
"dependencies": {
"angular": "github:angular/bower-angular#1.4.5",
"angular-bootstrap": "bower:angular-bootstrap#0.13.4",
"angular-encode-uri": "bower:angular-encode-uri#^1.0.0",
"angular-environment": "npm:angular-environment#^1.0.8",
"angular-material": "github:angular/bower-material#0.10.1",
"angular-messages": "npm:angular-messages#^1.4.9",
"angular-resource": "github:angular/bower-angular-resource#1.4.5",
"angular-route": "github:angular/bower-angular-route#1.4.5",
"angular-ui-mask": "bower:angular-ui-mask#^1.8.3",
"angular-ui-router": "github:angular-ui/ui-router#0.2.15",
"clean-css": "npm:clean-css#3.4.1",
"css": "github:systemjs/plugin-css#0.1.15",
"jquery": "github:components/jquery#2.1.4",
"module-crud-ui": "npm-redbee:module-crud-ui#1.2.5-beta",
"module-layout-ui": "npm-redbee:module-layout-ui#1.3.9-SNAPSHOT",
"module-security-ui": "npm-redbee:module-security-ui#1.0.3-SNAPSHOT",
"remarkable-bootstrap-notify": "bower:remarkable-bootstrap-notify#^3.1.3"
},
"devDependencies": {
"babel": "npm:babel-core#^5.8.24",
"babel-runtime": "npm:babel-runtime#^5.8.24",
"core-js": "npm:core-js#^1.1.4"
}
},
"publishConfig": {
"registry": "https://nexus.uat.aleph.turner.com/repository/npm-redbee"
},
"devDependencies": {
"babel-core": "^5.8.22",
"browser-sync": "^2.9.3",
"del": "^1.2.1",
"gulp": "^3.9.0",
"gulp-angular-templatecache": "^1.7.0",
"gulp-babel": "^5.2.1",
"gulp-cached": "^1.1.0",
"gulp-cdnify": "^1.0.3-pre",
"gulp-changed": "^1.3.0",
"gulp-css-base64": "^1.3.2",
"gulp-img64": "0.0.6",
"gulp-inject": "^3.0.0",
"gulp-jshint": "^1.11.2",
"gulp-minify-html": "^1.0.4",
"gulp-ng-annotate": "^1.1.0",
"gulp-plumber": "^1.0.1",
"gulp-replace-task": "^0.11.0",
"gulp-run": "^1.6.10",
"gulp-sass": "^2.0.4",
"gulp-sonar": "^1.0.3",
"gulp-sourcemaps": "^1.5.2",
"gulp-strip-code": "^0.1.2",
"gulp-uglify": "^1.4.1",
"gulp-util": "^3.0.6",
"isparta": "^3.0.3",
"istanbul": "^0.3.18",
"jasmine-core": "^2.3.4",
"jshint-stylish": "^2.0.1",
"jspm": "^0.16.1",
"jspm-bower-endpoint": "^0.3.2",
"karma": "^0.13.9",
"karma-babel-preprocessor": "^5.2.1",
"karma-chrome-launcher": "^0.2.0",
"karma-coverage": "^0.5.0",
"karma-jasmine": "^0.3.6",
"karma-jspm": "^2.0.1",
"karma-junit-reporter": "^0.3.4",
"karma-phantomjs-launcher": "^0.2.1",
"karma-sourcemap-loader": "^0.3.5",
"phantomjs": "^1.9.18",
"proxy-middleware": "^0.14.0",
"require-dir": "^0.3.0",
"run-sequence": "^1.1.2",
"url": "^0.11.0",
"vinyl-paths": "^1.0.0",
"angular-environment": "^1.0.8"
}
}
config.js
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "babel",
babelOptions: {
"optional": [
"runtime",
"optimisation.modules.system"
]
},
paths: {
"app/*": "dist/app/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*",
"npm-redbee:*": "jspm_packages/npm-redbee/*",
"bower:*": "jspm_packages/bower/*"
},
map: {
"angular": "github:angular/bower-angular#1.4.5",
"angular-bootstrap": "bower:angular-bootstrap#0.13.4",
"angular-encode-uri": "bower:angular-encode-uri#1.0.0",
"angular-environment": "npm:angular-environment#1.0.8",
"angular-material": "github:angular/bower-material#0.10.1",
"angular-messages": "npm:angular-messages#1.4.9",
"angular-resource": "github:angular/bower-angular-resource#1.4.5",
"angular-route": "github:angular/bower-angular-route#1.4.5",
"angular-ui-mask": "bower:angular-ui-mask#1.8.3",
"angular-ui-router": "github:angular-ui/ui-router#0.2.15",
"babel": "npm:babel-core#5.8.35",
"babel-runtime": "npm:babel-runtime#5.8.35",
"bootstrap-sweetalert": "bower:bootstrap-sweetalert#0.4.5",
"clean-css": "npm:clean-css#3.4.1",
"core-js": "npm:core-js#1.2.6",
"css": "github:systemjs/plugin-css#0.1.15",
"jquery": "github:components/jquery#2.1.4",
"module-crud-ui": "npm-redbee:module-crud-ui#1.2.5-beta",
"module-layout-ui": "npm-redbee:module-layout-ui#1.3.9-SNAPSHOT",
"module-security-ui": "npm-redbee:module-security-ui#1.0.3-SNAPSHOT",
"remarkable-bootstrap-notify": "bower:remarkable-bootstrap-notify#3.1.3",
"bower:angular-bootstrap#0.13.4": {
"angular": "bower:angular#1.4.5"
},
"bower:angular-bootstrap#1.3.3": {
"angular": "bower:angular#1.5.5"
},
"bower:angular-cookies#1.4.5": {
"angular": "bower:angular#1.4.5"
},
"bower:angular-encode-uri#1.0.0": {
"angular": "bower:angular#1.4.5"
},
"bower:angular-growl-v2#0.7.9": {
"angular": "bower:angular#1.4.5",
"css": "github:systemjs/plugin-css#0.1.15"
},
"bower:angular-ui-mask#1.8.3": {
"angular": "bower:angular#1.5.5"
},
"bower:bootstrap-sweetalert#0.4.5": {
"css": "github:systemjs/plugin-css#0.1.15"
},
"bower:bootstrap#3.3.6": {
"jquery": "bower:jquery#2.2.1"
},
"bower:material-design-iconic-font#2.1.2": {
"css": "github:systemjs/plugin-css#0.1.15"
},
"bower:remarkable-bootstrap-notify#3.1.3": {
"bootstrap": "bower:bootstrap#3.3.6",
"jquery": "bower:jquery#2.2.1"
},
"github:angular-translate/bower-angular-translate-loader-static-files#2.10.0": {
"angular-translate": "github:angular-translate/bower-angular-translate#2.10.0"
},
"github:angular-translate/bower-angular-translate#2.10.0": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular-ui/ui-router#0.2.15": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-animate#1.4.8": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-aria#1.4.8": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-cookies#1.5.0": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-mocks#1.4.4": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-route#1.4.4": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-route#1.4.5": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-angular-sanitize#1.5.0": {
"angular": "github:angular/bower-angular#1.4.5"
},
"github:angular/bower-material#0.10.0": {
"angular": "github:angular/bower-angular#1.4.5",
"angular-animate": "github:angular/bower-angular-animate#1.4.8",
"angular-aria": "github:angular/bower-angular-aria#1.4.8",
"css": "github:systemjs/plugin-css#0.1.15"
},
"github:angular/bower-material#0.10.1": {
"angular": "github:angular/bower-angular#1.4.5",
"angular-animate": "github:angular/bower-angular-animate#1.4.8",
"angular-aria": "github:angular/bower-angular-aria#1.4.8",
"css": "github:systemjs/plugin-css#0.1.15"
},
"github:chieffancypants/angular-loading-bar#0.8.0": {
"angular": "github:angular/bower-angular#1.4.5",
"css": "github:systemjs/plugin-css#0.1.15"
},
"github:jspm/nodelibs-assert#0.1.0": {
"assert": "npm:assert#1.3.0"
},
"github:jspm/nodelibs-buffer#0.1.0": {
"buffer": "npm:buffer#3.6.0"
},
"github:jspm/nodelibs-events#0.1.1": {
"events": "npm:events#1.0.2"
},
"github:jspm/nodelibs-http#1.7.1": {
"Base64": "npm:Base64#0.2.1",
"events": "github:jspm/nodelibs-events#0.1.1",
"inherits": "npm:inherits#2.0.1",
"stream": "github:jspm/nodelibs-stream#0.1.0",
"url": "github:jspm/nodelibs-url#0.1.0",
"util": "github:jspm/nodelibs-util#0.1.0"
},
"github:jspm/nodelibs-https#0.1.0": {
"https-browserify": "npm:https-browserify#0.0.0"
},
"github:jspm/nodelibs-os#0.1.0": {
"os-browserify": "npm:os-browserify#0.1.2"
},
"github:jspm/nodelibs-path#0.1.0": {
"path-browserify": "npm:path-browserify#0.0.0"
},
"github:jspm/nodelibs-process#0.1.2": {
"process": "npm:process#0.11.2"
},
"github:jspm/nodelibs-stream#0.1.0": {
"stream-browserify": "npm:stream-browserify#1.0.0"
},
"github:jspm/nodelibs-url#0.1.0": {
"url": "npm:url#0.10.3"
},
"github:jspm/nodelibs-util#0.1.0": {
"util": "npm:util#0.10.3"
},
"npm-redbee:module-crud-ui#1.2.5-beta": {
"angular": "github:angular/bower-angular#1.4.5",
"angular-mocks": "github:angular/bower-angular-mocks#1.4.4",
"angular-resource": "github:angular/bower-angular-resource#1.4.4",
"angular-route": "github:angular/bower-angular-route#1.4.4",
"angular-ui-router": "github:angular-ui/ui-router#0.2.15"
},
"npm-redbee:module-layout-ui#1.3.9-SNAPSHOT": {
"angular": "github:angular/bower-angular#1.4.5",
"angular-bootstrap": "bower:angular-bootstrap#1.3.3",
"angular-cookies": "github:angular/bower-angular-cookies#1.5.0",
"angular-growl-v2": "bower:angular-growl-v2#0.7.9",
"angular-loading-bar": "github:chieffancypants/angular-loading-bar#0.8.0",
"angular-material": "github:angular/bower-material#0.10.0",
"angular-sanitize": "github:angular/bower-angular-sanitize#1.5.0",
"angular-translate": "github:angular-translate/bower-angular-translate#2.10.0",
"angular-translate-loader-static-files": "github:angular-translate/bower-angular-translate-loader-static-files#2.10.0",
"angular-ui-router": "github:angular-ui/ui-router#0.2.15",
"angular-utils-ui-breadcrumbs": "bower:angular-utils-ui-breadcrumbs#0.2.2",
"bootstrap-sweetalert": "bower:bootstrap-sweetalert#0.4.5",
"clean-css": "npm:clean-css#3.4.1",
"css": "github:systemjs/plugin-css#0.1.15",
"jquery": "github:components/jquery#2.1.4",
"material-design-iconic-font": "bower:material-design-iconic-font#2.1.2"
},
"npm-redbee:module-security-ui#1.0.3-SNAPSHOT": {
"angular-cookies": "bower:angular-cookies#1.4.5",
"angular-uuid": "npm:angular-uuid#0.0.2"
},
"npm:amdefine#1.0.0": {
"fs": "github:jspm/nodelibs-fs#0.1.2",
"module": "github:jspm/nodelibs-module#0.1.0",
"path": "github:jspm/nodelibs-path#0.1.0",
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:angular-uuid#0.0.2": {
"buffer": "github:jspm/nodelibs-buffer#0.1.0"
},
"npm:assert#1.3.0": {
"util": "npm:util#0.10.3"
},
"npm:babel-runtime#5.8.35": {
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:buffer#3.6.0": {
"base64-js": "npm:base64-js#0.0.8",
"child_process": "github:jspm/nodelibs-child_process#0.1.0",
"fs": "github:jspm/nodelibs-fs#0.1.2",
"ieee754": "npm:ieee754#1.1.6",
"isarray": "npm:isarray#1.0.0",
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:clean-css#3.4.1": {
"buffer": "github:jspm/nodelibs-buffer#0.1.0",
"commander": "npm:commander#2.8.1",
"fs": "github:jspm/nodelibs-fs#0.1.2",
"http": "github:jspm/nodelibs-http#1.7.1",
"https": "github:jspm/nodelibs-https#0.1.0",
"os": "github:jspm/nodelibs-os#0.1.0",
"path": "github:jspm/nodelibs-path#0.1.0",
"process": "github:jspm/nodelibs-process#0.1.2",
"source-map": "npm:source-map#0.4.4",
"url": "github:jspm/nodelibs-url#0.1.0",
"util": "github:jspm/nodelibs-util#0.1.0"
},
"npm:commander#2.8.1": {
"child_process": "github:jspm/nodelibs-child_process#0.1.0",
"events": "github:jspm/nodelibs-events#0.1.1",
"fs": "github:jspm/nodelibs-fs#0.1.2",
"graceful-readlink": "npm:graceful-readlink#1.0.1",
"path": "github:jspm/nodelibs-path#0.1.0",
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:core-js#1.2.6": {
"fs": "github:jspm/nodelibs-fs#0.1.2",
"path": "github:jspm/nodelibs-path#0.1.0",
"process": "github:jspm/nodelibs-process#0.1.2",
"systemjs-json": "github:systemjs/plugin-json#0.1.0"
},
"npm:core-util-is#1.0.2": {
"buffer": "github:jspm/nodelibs-buffer#0.1.0"
},
"npm:graceful-readlink#1.0.1": {
"fs": "github:jspm/nodelibs-fs#0.1.2"
},
"npm:https-browserify#0.0.0": {
"http": "github:jspm/nodelibs-http#1.7.1"
},
"npm:inherits#2.0.1": {
"util": "github:jspm/nodelibs-util#0.1.0"
},
"npm:os-browserify#0.1.2": {
"os": "github:jspm/nodelibs-os#0.1.0"
},
"npm:path-browserify#0.0.0": {
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:process#0.11.2": {
"assert": "github:jspm/nodelibs-assert#0.1.0"
},
"npm:punycode#1.3.2": {
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:readable-stream#1.1.13": {
"buffer": "github:jspm/nodelibs-buffer#0.1.0",
"core-util-is": "npm:core-util-is#1.0.2",
"events": "github:jspm/nodelibs-events#0.1.1",
"inherits": "npm:inherits#2.0.1",
"isarray": "npm:isarray#0.0.1",
"process": "github:jspm/nodelibs-process#0.1.2",
"stream-browserify": "npm:stream-browserify#1.0.0",
"string_decoder": "npm:string_decoder#0.10.31"
},
"npm:source-map#0.4.4": {
"amdefine": "npm:amdefine#1.0.0",
"process": "github:jspm/nodelibs-process#0.1.2"
},
"npm:stream-browserify#1.0.0": {
"events": "github:jspm/nodelibs-events#0.1.1",
"inherits": "npm:inherits#2.0.1",
"readable-stream": "npm:readable-stream#1.1.13"
},
"npm:string_decoder#0.10.31": {
"buffer": "github:jspm/nodelibs-buffer#0.1.0"
},
"npm:url#0.10.3": {
"assert": "github:jspm/nodelibs-assert#0.1.0",
"punycode": "npm:punycode#1.3.2",
"querystring": "npm:querystring#0.2.0",
"util": "github:jspm/nodelibs-util#0.1.0"
},
"npm:util#0.10.3": {
"inherits": "npm:inherits#2.0.1",
"process": "github:jspm/nodelibs-process#0.1.2"
}
}
});
Most likely, your are using an older version of the jspm github package. From the source code, it seems that it used the access_token query parameter in version < 1.0.0.
For instance, 0.13.20 version used the access_token query parameter contrary the newest package version (any version after 1.0.0)
It also seems that the package name has changed from jspm-github to #jspm/github for version >= 1.0.0. So you may just need to use the new #jspm/github package instead
I have been happily running tests on a Protractor/Jasmine2 framework. Now, I've started a new project and used the same framework - however, when I tried to run the first spec, I received a 'Spec not found' message.
I have tried all sorts of things....explicit file locations, having spec.js in the root of the project, pushing to BitBucket, deleting the project off my machine and re-cloning. Running on VS Code and Atom makes no difference.
I've stripped the spec.js to something so simple in case it something there but I'm blowed if I can spot anything! Please see conf.js, spec.js and Package.json. Sorry for all of the // in conf.js - kept on stripping things out!!
Hoping for some eagle-eyed person...!! Thanks
PACKAGE.json
{
"name": "jl_autotests",
"version": "1.0.0",
"description": "Autotests",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+ssh://git#bitbucket.org/davred61/jl_autotests.git"
},
"keywords": [
"Cucumber",
"gherkin",
"cuke",
"protractor",
"angular",
"selenium",
"endtoend",
"report",
"e2e",
"javascript"
],
"author": "D Redmayne",
"license": "ISC",
"homepage": "https://bitbucket.org/davred61/jl_autotests#readme",
"dependencies": {
"Express": "^3.0.1",
"angular": "^1.6.6",
"angularjs": "0.0.1",
"cucumber": "^3.1.0",
"glob": "^7.1.2",
"gulp": "^3.9.1",
"lodash": "^4.17.4",
"material-design-lite": "^1.3.0",
"moment": "^2.19.2",
"pretty": "^2.0.0",
"protractor": "^5.2.0",
"protractor-cucumber-framework": "^4.1.1",
"protractor-image-comparison": "^1.3.0"
},
"devDependencies": {
"chai": "^4.1.2",
"express": "^4.16.2",
"gulp-protractor": "^4.1.0",
"jasmine-reporters": "^2.2.1",
"jasmine-spec-reporter": "^4.2.1",
"protractor-jasmine2-html-reporter": "0.0.7",
"protractor-jasmine2-screenshot-reporter": "^0.5.0",
"restify": "^6.3.2"
}
}
Conf.js
//var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
//seleniumAddress: 'http://localhost:444/wd/hub',
//directConnect: true,
capabilities: {
cssSelectorsEnabled: true,
'browserName': 'chrome'
},
specs:['spec.js'],
allScriptsTimeout: 60000,
getPageTimetout: 30000,
framework: 'jasmine2',
//onPrepare: function() {
//jasmine.getEnv().addReporter(
//new Jasmine2HtmlReporter({
//takeScreenshots: true,
//savePath: './Reports',
//fileName: 'HomeProfile'
//})
//)
//var SpecReporter = require ( 'jasmine-spec-reporter').SpecReporter;
//jasmine.getEnv().addReporter( new SpecReporter( {
//displayStacktrace: true,
//displayFailureSummary: true,
//displayPendingSummary: true,
//displaySuccessfulSpec: true,
//displayFailedSpec: true,
//displaySpecDuration: false,
//displaySuiteNumber: false,
//colors: {
//success: 'green',
//failure: 'red',
//pending: 'yellow'
// },
//customProcessors: []
//} ));
//}
};
spec.js
browser.get('https://mwac-johnlewis-dev.digitalbridge.eu/landing');
browser.sleep(10000);
I am trying to create a new development environment for an app using angularfire2 package, downloading the source code from a repository.
The package.json file points to version 2.0.0-beta.6 of angularfire2, as in the following snippet
{
"name": "blah blah",
"author": "blah blah",
...
"dependencies": {
....
"angularfire2": "^2.0.0-beta.6",
...
}
.....
}
I run npm install to download all the packages I need.
Unfortunately, in case of angularfire2, what gets downloaded seems to be a different version of the package (probably 2.0.0-beta.8) which has several breaking changes with respect to version 2.0.0-beta.6.
How is this possible?
The package.json file within the angularfire2 directory (under node_modules) is the following
{
"_args": [
[
{
"raw": "angularfire2#^2.0.0-beta.6",
"scope": null,
"escapedName": "angularfire2",
"name": "angularfire2",
"rawSpec": "^2.0.0-beta.6",
"spec": ">=2.0.0-beta.6 <3.0.0",
"type": "range"
},
"/Users/penrico/ThoughWorks/code/angular/castella"
]
],
"_from": "angularfire2#>=2.0.0-beta.6 <3.0.0",
"_id": "angularfire2#2.0.0-beta.8",
"_inCache": true,
"_location": "/angularfire2",
"_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
"host": "packages-18-east.internal.npmjs.com",
"tmp": "tmp/angularfire2-2.0.0-beta.8.tgz_1487250058126_0.7350442344322801"
},
"_npmUser": {
"name": "davideast",
"email": "dceast#gmail.com"
},
"_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "angularfire2#^2.0.0-beta.6",
"scope": null,
"escapedName": "angularfire2",
"name": "angularfire2",
"rawSpec": "^2.0.0-beta.6",
"spec": ">=2.0.0-beta.6 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/angularfire2/-/angularfire2-2.0.0-beta.8.tgz",
"_shasum": "8ec172ff17448c3ccdb79e9c6179da556ff05e1b",
"_shrinkwrap": null,
"_spec": "angularfire2#^2.0.0-beta.6",
"_where": "/Users/penrico/ThoughWorks/code/angular/castella",
"author": {
"name": "jeffbcross,davideast"
},
"bugs": {
"url": "https://github.com/angular/angularfire2/issues"
},
"dependencies": {},
"description": "<p align=\"center\"> <h1 align=\"center\">AngularFire2</h1> <p align=\"center\">The official library for Firebase and Angular 2</p> </p>",
"devDependencies": {
"#angular/compiler-cli": "^2.0.0",
"#angular/platform-server": "^2.0.0-rc.5",
"#types/jasmine": "^2.5.36",
"#types/request": "0.0.30",
"concurrently": "^2.2.0",
"conventional-changelog-cli": "^1.2.0",
"es6-module-loader": "^0.17.10",
"es6-shim": "^0.35.0",
"gulp": "^3.9.0",
"gulp-jasmine": "^2.2.1",
"gulp-typescript": "^2.10.0",
"http-server": "^0.8.5",
"jasmine": "^2.4.1",
"jasmine-core": "^2.4.1",
"json": "^9.0.3",
"karma": "^0.13.19",
"karma-chrome-launcher": "^0.2.2",
"karma-firefox-launcher": "^0.1.7",
"karma-jasmine": "^0.3.6",
"karma-mocha-reporter": "^2.0.2",
"karma-systemjs": "^0.10.0",
"ncp": "^2.0.0",
"parse5": "^1.3.2",
"protractor": "3.0.0",
"reflect-metadata": "0.1.2",
"rimraf": "^2.5.4",
"rollup": "^0.35.11",
"rollup-watch": "^2.5.0",
"systemjs": "^0.19.16",
"systemjs-builder": "^0.15.7",
"traceur": "0.0.96",
"typedoc": "github:jeffbcross/typedoc",
"typescript": "^2.0.2",
"zone.js": "^0.7.2"
},
"directories": {},
"dist": {
"shasum": "8ec172ff17448c3ccdb79e9c6179da556ff05e1b",
"tarball": "https://registry.npmjs.org/angularfire2/-/angularfire2-2.0.0-beta.8.tgz"
},
"homepage": "https://github.com/angular/angularfire2#readme",
"keywords": [
"angular2",
"angular",
"firebase"
],
"license": "MIT",
"main": "bundles/angularfire2.umd.js",
"maintainers": [
{
"name": "angularcore",
"email": "angular-core+npm#google.com"
},
{
"name": "davideast",
"email": "dceast#gmail.com"
},
{
"name": "jeffbcross",
"email": "middlefloor#gmail.com"
}
],
"module": "index.js",
"name": "angularfire2",
"optionalDependencies": {},
"peerDependencies": {
"#angular/common": "^2.0.0",
"#angular/compiler": "^2.0.0",
"#angular/core": "^2.0.0",
"#angular/platform-browser": "^2.0.0",
"#angular/platform-browser-dynamic": "^2.0.0",
"firebase": "^3.0.0",
"rxjs": "^5.0.1"
},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/angular/angularfire2.git"
},
"scripts": {},
"typings": "index.d.ts",
"version": "2.0.0-beta.8"
}
The first breaking change (just to make an example that sustains my theory that this is a different version of the package) is that there is no more FirebaseAuth (which seems to be substituted by AngularFireAuth).
It's installing a later version, as that version satisfies the caret range you have specified in the package.json file:
"angularfire2": "^2.0.0-beta.6"
If you want a specific version, remove the caret:
"angularfire2": "2.0.0-beta.6"
Looking at the spec - under that NPM has filled out under _requested in the package.json file that's in node_modules/angularfire2 - you can see that caret range you have specified is equivalent to:
"spec": ">=2.0.0-beta.6 <3.0.0",
Just started using gulp not long ago, everything works fine before this when I'm stuck at this error. I've tried
//gulpfile.js
var gulp = require('gulp'),
browserify = require('browserify'),
source = require('vinyl-source-stream');
// Browserify task
gulp.task('browserify', function() {
return browserify(['app/scripts/app.js'], {debug:true})
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('dist/scripts'))
});
Error when running gulp browserify
events.js:141
throw er; // Unhandled 'error' event
^
SyntaxError: Unterminated string constant
Where does this syntax error point to? I've read up some articles on the errors in package.json file too.
"devDependencies": {
"browserify": "^13.0.0",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean-css": "^2.0.4",
"gulp-connect": "^3.2.1",
"gulp-imagemin": "^2.4.0",
"gulp-less": "^3.0.5",
"gulp-plumber": "^1.1.0",
"gulp-uglify": "^1.5.3",
"vinyl-source-stream": "^1.1.0"
},
"dependencies": {
"angular": "^1.5.3",
"imagemin-pngquant": "^4.2.2"
}
//browserify package.json
{
"name": "browserify",
"version": "13.0.0",
"description": "browser-side require() the node way",
"main": "index.js",
"bin": {
"browserify": "bin/cmd.js"
},
"repository": {
"type": "git",
"url": "git+ssh://git#github.com/substack/node-browserify.git"
},
"keywords": [
"browser",
"require",
"commonjs",
"commonj-esque",
"bundle",
"npm",
"javascript"
],
"dependencies": {
"JSONStream": "^1.0.3",
"assert": "~1.3.0",
"browser-pack": "^6.0.1",
"browser-resolve": "^1.11.0",
"browserify-zlib": "~0.1.2",
"buffer": "^4.1.0",
"concat-stream": "~1.5.1",
"console-browserify": "^1.1.0",
"constants-browserify": "~1.0.0",
"crypto-browserify": "^3.0.0",
"defined": "^1.0.0",
"deps-sort": "^2.0.0",
"domain-browser": "~1.1.0",
"duplexer2": "~0.1.2",
"events": "~1.1.0",
"glob": "^5.0.15",
"has": "^1.0.0",
"htmlescape": "^1.1.0",
"stream-http": "^2.0.0",
"https-browserify": "~0.0.0",
"inherits": "~2.0.1",
"insert-module-globals": "^7.0.0",
"isarray": "0.0.1",
"labeled-stream-splicer": "^2.0.0",
"module-deps": "^4.0.2",
"os-browserify": "~0.1.1",
"parents": "^1.0.1",
"path-browserify": "~0.0.0",
"process": "~0.11.0",
"punycode": "^1.3.2",
"querystring-es3": "~0.2.0",
"read-only-stream": "^2.0.0",
"readable-stream": "^2.0.2",
"resolve": "^1.1.4",
"shasum": "^1.0.0",
"shell-quote": "^1.4.3",
"stream-browserify": "^2.0.0",
"string_decoder": "~0.10.0",
"subarg": "^1.0.0",
"syntax-error": "^1.1.1",
"through2": "^2.0.0",
"timers-browserify": "^1.0.1",
"tty-browserify": "~0.0.0",
"url": "~0.11.0",
"util": "~0.10.1",
"vm-browserify": "~0.0.1",
"xtend": "^4.0.0"
},
"devDependencies": {
"backbone": "~0.9.2",
"browser-unpack": "^1.1.1",
"coffee-script": "~1.10.0",
"coffeeify": "~1.1.0",
"es6ify": "~0.4.8",
"isstream": "^0.1.2",
"seq": "0.3.5",
"tap": "^2.2.0",
"temp": "^0.8.1",
"through": "^2.3.4"
},
"author": {
"name": "James Halliday",
"email": "mail#substack.net",
"url": "http://substack.net"
},
"scripts": {
"test": "tap test/*.js"
},
"license": "MIT",
"gitHead": "5b82a2f1bc061cb47ff4aa7c702ed79fc20effa8",
"bugs": {
"url": "https://github.com/substack/node-browserify/issues"
},
"homepage": "https://github.com/substack/node-browserify#readme",
"_id": "browserify#13.0.0",
"_shasum": "8f223bb24ff4ee4335e6bea9671de294e43ba6a3",
"_from": "browserify#latest",
"_npmVersion": "2.14.7",
"_nodeVersion": "4.2.3",
"_npmUser": {
"name": "feross",
"email": "feross#feross.org"
},
"dist": {
"shasum": "8f223bb24ff4ee4335e6bea9671de294e43ba6a3",
"tarball": "http://registry.npmjs.org/browserify/-/browserify- 13.0.0.tgz"
},
"maintainers": [
{
"name": "domenic",
"email": "d#domenic.me"
},
{
"name": "dominictarr",
"email": "dominic.tarr#gmail.com"
},
{
"name": "feross",
"email": "feross#feross.org"
},
{
"name": "jmm",
"email": "npm-public#jessemccarthy.net"
},
{
"name": "mafintosh",
"email": "mathiasbuus#gmail.com"
},
{
"name": "maxogden",
"email": "max#maxogden.com"
},
{
"name": "mellowmelon",
"email": "palmermebane#gmail.com"
},
{
"name": "substack",
"email": "substack#gmail.com"
},
{
"name": "terinjokes",
"email": "terinjokes#gmail.com"
},
{
"name": "thlorenz",
"email": "thlorenz#gmx.de"
},
{
"name": "zertosh",
"email": "zertosh#gmail.com"
}
],
"directories": {},
"_resolved": "https://registry.npmjs.org/browserify/-/browserify-13.0.0.tgz",
"readme": "ERROR: No README data found!"
}
I manage to run this without error by adding
{
"devDependencies": {
"browserify": "^13.0.0",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean-css": "^2.0.4",
"gulp-connect": "^3.2.1",
"gulp-imagemin": "^2.4.0",
"gulp-less": "^3.0.5",
"gulp-plumber": "^1.1.0",
"gulp-uglify": "^1.5.3",
"vinyl-source-stream": "^1.1.0"
},
"dependencies": {
"angular": "^1.5.3",
"imagemin-pngquant": "^4.2.2"
},
//Tells browserify to use browserify-shim
"browserify": {
"transform": [ "browserify-shim" ]
},
"browserify-shim": {
"./app/scripts/app.js": "$"
}
}