qualcuno ha scritto test di gelsomino/scherzo usando la sintassi es2015? quanto shimming/polyfill/gerrymandering richiede?babel-jest ES2015 import statement
sto riscontrando problemi nell'importazione delle funzioni correttamente. Ho un modulo:. .../utils/TweetUtils.js
'use strict';
export function getListOfTweetIds (tweets) {
return Object.keys(tweets);
};
e un test privato:
... ./__ test __/TweetUtils-test.js
'use strict';
jest.dontMock('../TweetUtils');
import * as TweetUtils from '../TweetUtils';
describe('Tweet utilities module',() => {
it('has access to the TweetUtils methods',() => {
let testObj = {a:'a',b:'b',c:'c'};
// Passes
expect(TweetUtils.getListOfTweetIds).toBeDefined();
// Passes
expect(typeof TweetUtils.getListOfTweetIds).toBe('function');
// Fails
expect(TweetUtils.getListOfTweetIds(testObj)).toBeTruthy();
});
});
Se si modifica l'output di una console nella suite con qualcosa del genere: expect(‘’).toBe(TweetUtils);
Jasmine riporta questo:
- Expected: '' toBe: {
default: {
getListOfTweetIds: Function
},
getListOfTweetIds: Function
}
Così sembra che l'istruzione import sta facendo qualcosa, ma non è chiaramente l'importazione miei metodi onestamente. Ottengo gli stessi risultati quando ho importare utilizzando la sintassi della funzione denominata: import {getListOfTweetIds} from ‘../TweetUtils’;
Ma se io uso la sintassi predefinita: import getListOfTweetIds from ‘../TweetUtils’;
Il secondo spec fallisce - non è più typeof function
è, ma typeof object // => {default: Function}
mi è stato pettinando i documenti e questioni aperte. Ci sono stati problemi correlati per alcuni mesi, ma i problemi noti non sembrano giusti. Ho provato a importare le mie istruzioni jest.dontMock per evitare il sollevamento, circa: https://github.com/babel/babel-jest/issues/16 ma senza dadi.
Tutto funziona se modifico TweetUtils.js da utilizzare module.exports = function…
e portarlo nella suite con const myFunction = require(‘../TweetUtils’)
, ma non si sente come sto canalizzare la vera magia ES2015. Ognuno di noi ha appena a che fare con un lavoro approssimativo mentre l'ecosistema raggiunge la nuova sintassi?
Nel mio caso questo ha funzionato solo quando ho aggiunto .default: 'TweetUtils const = richiedono (' ../ TweetUtils') di default; '. – vitalets