Skip to content

Commit

Permalink
TS CJS Jest Testing, Done Right!
Browse files Browse the repository at this point in the history
Heck yeah, man!!! Figured out how to get all tests passing, just by instead running them on the built version of the TS code, rather than the transpiled version of it. It's not as ideal as having it just work, but I can do that later, once things are migrated properly.

Now the built TS source is put to the `./dist` folder as well, which is where the tests/mocks run from now instead. Yoo!!!

jestjs/jest#13143 (Kind of helped a bit, but still ran into other issues, so I went with this route instead)
  • Loading branch information
Offroaders123 committed Feb 22, 2024
1 parent 628c0cb commit e66f1fb
Show file tree
Hide file tree
Showing 23 changed files with 73 additions and 3,460 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.DS_Store
node_modules
build2
dist
4 changes: 2 additions & 2 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ src
.gitignore
browser.js
publish.sh
build2/__mocks__/
build2/__tests__/
dist/__mocks__/
dist/__tests__/
dist/jsmediatags.js
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,11 +337,11 @@ var ID3v2TagReader = require('./src/ID3v2TagReader');

### NodeJS (With Compiled Code (faster))

Run `npm run build` to generate proper JavaScript code into the `build2` directory.
Run `npm run build` to generate proper JavaScript code into the `dist` directory.

```javascript
var NodeFileReader = require('./build2/NodeFileReader');
var ID3v2TagReader = require('./build2/ID3v2TagReader');
var NodeFileReader = require('./dist/NodeFileReader');
var ID3v2TagReader = require('./dist/ID3v2TagReader');
...
```

Expand Down
3,286 changes: 0 additions & 3,286 deletions dist/jsmediatags.js

This file was deleted.

102 changes: 0 additions & 102 deletions dist/jsmediatags.min.js

This file was deleted.

9 changes: 3 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
}
],
"type": "commonjs",
"main": "build2/jsmediatags.js",
"main": "dist/jsmediatags.js",
"browser": "dist/jsmediatags.js",
"repository": {
"type": "git",
Expand Down Expand Up @@ -69,11 +69,8 @@
},
"scripts": {
"test": "jest",
"build": "babel src --ignore __tests__,__mocks,FlowTypes.js --out-dir build2",
"watch": "babel --ignore __tests__,__mocks,FlowTypes.js --watch src --out-dir build2",
"dist-dev": "mkdir -p dist && browserify src/jsmediatags.js --detect-globals false -i ./src/NodeFileReader.js -i ./src/ReactNativeFileReader.js -o dist/jsmediatags.js -s jsmediatags -t babelify",
"dist-watch": "mkdir -p dist && watchify src/jsmediatags.js -v --detect-globals false -i ./src/NodeFileReader.js -i ./src/ReactNativeFileReader.js -o dist/jsmediatags.js -s jsmediatags -t babelify",
"dist": "npm run dist-dev && java -jar node_modules/google-closure-compiler/compiler.jar --warning_level QUIET --compilation_level SIMPLE_OPTIMIZATIONS --js dist/jsmediatags.js > dist/jsmediatags.min.js"
"build": "tsc",
"watch": "tsc --watch"
},
"jest": {
"rootDir": "./src",
Expand Down
2 changes: 1 addition & 1 deletion src/ID3v2FrameReader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ frameReaderFunctions['TCON'] = function readGenreFrame(
flags: ?Object
): any {
var text = frameReaderFunctions['T*'].apply(this, arguments);
return (text: string).replace(/^\(\d+\)/, '');
return (text as string).replace(/^\(\d+\)/, '');
};

frameReaderFunctions['TCO'] = frameReaderFunctions['TCON'];
Expand Down
4 changes: 3 additions & 1 deletion src/XhrFileReader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ type ContentRangeType = {
instanceLength: ?number,
};

export = class XhrFileReader extends MediaFileReader {
export = XhrFileReader;

class XhrFileReader extends MediaFileReader {
static _config: {
avoidHeadRequests: boolean,
disallowedXhrHeaders: Array<string>,
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/ArrayBufferFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
jest
.dontMock('../ArrayBufferFileReader.js')
.dontMock('../MediaFileReader.js')
.dontMock('../ChunkedFileData.js');
.dontMock('../../dist/ArrayBufferFileReader.js')
.dontMock('../../dist/MediaFileReader.js')
.dontMock('../../dist/ChunkedFileData.js');

var ArrayBufferFileReader = require('../ArrayBufferFileReader');
var ArrayBufferFileReader = require('../../dist/ArrayBufferFileReader');

function throwOnError(onSuccess) {
return {
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/ArrayFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest
.dontMock('../ArrayFileReader.js')
.dontMock('../MediaFileReader.js');
.dontMock('../../dist/ArrayFileReader.js')
.dontMock('../../dist/MediaFileReader.js');

var ArrayFileReader = require('../ArrayFileReader');
var ArrayFileReader = require('../../dist/ArrayFileReader');

function throwOnError(onSuccess) {
return {
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/BlobFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
jest
.dontMock('../BlobFileReader.js')
.dontMock('../MediaFileReader.js')
.dontMock('../ChunkedFileData.js');
.dontMock('../../dist/BlobFileReader.js')
.dontMock('../../dist/MediaFileReader.js')
.dontMock('../../dist/ChunkedFileData.js');

var BlobFileReader = require('../BlobFileReader');
var BlobFileReader = require('../../dist/BlobFileReader');

function throwOnError(onSuccess) {
return {
Expand Down
4 changes: 2 additions & 2 deletions src/__tests__/ChunkedFileData-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
jest
.dontMock('../ChunkedFileData.js');
.dontMock('../../dist/ChunkedFileData.js');

var ChunkedFileData = require('../ChunkedFileData');
var ChunkedFileData = require('../../dist/ChunkedFileData');

describe("ChunkedFileData", function() {
var chunkedFileData;
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/FLACTagReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest.autoMockOff();

const ArrayFileReader = require('../ArrayFileReader');
const FLACTagContents = require('../FLACTagContents');
const FLACTagReader = require('../FLACTagReader');
const ArrayFileReader = require('../../dist/ArrayFileReader');
const FLACTagContents = require('../../dist/FLACTagContents');
const FLACTagReader = require('../../dist/FLACTagReader');

describe("FLACTagReader", function() {
var flacFileContents = new FLACTagContents([FLACTagContents.createCommentBlock(
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/ID3v1TagReader-test.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
jest.autoMockOff();

const ID3v1TagReader = require('../ID3v1TagReader');
const ArrayFileReader = require('../ArrayFileReader');
const ID3v1TagReader = require('../../dist/ID3v1TagReader');
const ArrayFileReader = require('../../dist/ArrayFileReader');

const bin = require('../ByteArrayUtils').bin;
const pad = require('../ByteArrayUtils').pad;
const bin = require('../../dist/ByteArrayUtils').bin;
const pad = require('../../dist/ByteArrayUtils').pad;

describe("ID3v1TagReader", function() {
it("reads 1.0 tags", function() {
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/ID3v2FrameReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest.autoMockOff();

const ID3v2FrameReader = require('../ID3v2FrameReader');
const ArrayFileReader = require('../ArrayFileReader');
const bin = require('../ByteArrayUtils').bin;
const ID3v2FrameReader = require('../../dist/ID3v2FrameReader');
const ArrayFileReader = require('../../dist/ArrayFileReader');
const bin = require('../../dist/ByteArrayUtils').bin;

describe("ID3v2FrameReader", function() {
it("should read APIC tag", function() {
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/ID3v2TagReader-test.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
jest.autoMockOff();

const ID3v2TagReader = require('../ID3v2TagReader');
const ID3v2TagContents = require('../ID3v2TagContents');
const ArrayFileReader = require('../ArrayFileReader');
const ID3v2TagReader = require('../../dist/ID3v2TagReader');
const ID3v2TagContents = require('../../dist/ID3v2TagContents');
const ArrayFileReader = require('../../dist/ArrayFileReader');

const bin = require('../ByteArrayUtils').bin;
const bin = require('../../dist/ByteArrayUtils').bin;

describe("ID3v2TagReader", function() {
var tagReader;
Expand Down
10 changes: 5 additions & 5 deletions src/__tests__/MP4TagReader-test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
jest.autoMockOff();

const MP4TagReader = require('../MP4TagReader');
const MP4TagContents = require('../MP4TagContents');
const ArrayFileReader = require('../ArrayFileReader');
const MP4TagReader = require('../../dist/MP4TagReader');
const MP4TagContents = require('../../dist/MP4TagContents');
const ArrayFileReader = require('../../dist/ArrayFileReader');

const bin = require('../ByteArrayUtils').bin;
const pad = require('../ByteArrayUtils').pad;
const bin = require('../../dist/ByteArrayUtils').bin;
const pad = require('../../dist/ByteArrayUtils').pad;

function createMP4FileContents(atoms) {
return new MP4TagContents(
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/MediaFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest
.dontMock('../MediaFileReader.js')
.dontMock('../StringUtils.js');
.dontMock('../../dist/MediaFileReader.js')
.dontMock('../../dist/StringUtils.js');

var MediaFileReader = require('../MediaFileReader');
var MediaFileReader = require('../../dist/MediaFileReader');

describe("MediaFileReader", function() {
var mediaFileReader;
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/MediaTagReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest
.dontMock('../MediaTagReader.js');
.dontMock('../../dist/MediaTagReader.js');

const MediaTagReader = require('../MediaTagReader');
const MediaFileReader = require('../MediaFileReader');
const MediaTagReader = require('../../dist/MediaTagReader');
const MediaFileReader = require('../../dist/MediaFileReader');

describe("MediaTagReader", function() {
var mediaTagReader;
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/NodeFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jest
.mock('fs')
.dontMock('../NodeFileReader.js')
.dontMock('../MediaFileReader.js')
.dontMock('../ChunkedFileData.js');
.dontMock('../../dist/NodeFileReader.js')
.dontMock('../../dist/MediaFileReader.js')
.dontMock('../../dist/ChunkedFileData.js');

describe("NodeFileReader", function() {
var NodeFileReader;
Expand All @@ -12,7 +12,7 @@ describe("NodeFileReader", function() {
require('fs').__setMockFiles({
"fakefile": "This is a simple file"
});
NodeFileReader = require('../NodeFileReader');
NodeFileReader = require('../../dist/NodeFileReader');
});

it("should be able to read the right type of files", function() {
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/XhrFileReader-test.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
jest
.mock('xhr2')
.dontMock('../XhrFileReader.js')
.dontMock('../MediaFileReader.js')
.dontMock('../ChunkedFileData.js');
.dontMock('../../dist/XhrFileReader.js')
.dontMock('../../dist/MediaFileReader.js')
.dontMock('../../dist/ChunkedFileData.js');

var XhrFileReader = require('../XhrFileReader');
var XhrFileReader = require('../../dist/XhrFileReader');

function throwOnError(onSuccess) {
return {
Expand Down
22 changes: 11 additions & 11 deletions src/__tests__/jsmediatags-test.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
jest
.enableAutomock()
.dontMock("../jsmediatags.js")
.dontMock("../ByteArrayUtils.js");

const jsmediatags = require("../jsmediatags");
const NodeFileReader = require("../NodeFileReader");
const XhrFileReader = require("../XhrFileReader");
const ArrayFileReader = require("../ArrayFileReader");
const ID3v1TagReader = require("../ID3v1TagReader");
const ID3v2TagReader = require("../ID3v2TagReader");
const MP4TagReader = require("../MP4TagReader");
const FLACTagReader = require("../FLACTagReader");
.dontMock("../../dist/jsmediatags.js")
.dontMock("../../dist/ByteArrayUtils.js");

const jsmediatags = require("../../dist/jsmediatags");
const NodeFileReader = require("../../dist/NodeFileReader");
const XhrFileReader = require("../../dist/XhrFileReader");
const ArrayFileReader = require("../../dist/ArrayFileReader");
const ID3v1TagReader = require("../../dist/ID3v1TagReader");
const ID3v2TagReader = require("../../dist/ID3v2TagReader");
const MP4TagReader = require("../../dist/MP4TagReader");
const FLACTagReader = require("../../dist/FLACTagReader");

function throwOnSuccess(onError) {
return {
Expand Down
4 changes: 3 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
"module": "CommonJS",
"target": "ESNext",
"isolatedModules": true,
"noEmit": true,
// "noEmit": true,
// "declaration": true,
// "sourceMap": true,
"strict": true,
"strictNullChecks": false, // temp
"noImplicitOverride": true,
Expand Down

0 comments on commit e66f1fb

Please sign in to comment.