screepers / screeps-typescript-starter

Starter kit for TypeScript-based Screeps AI codes.
https://screepers.gitbook.io/screeps-typescript-starter/
The Unlicense
441 stars 318 forks source link

Using Object.defineProperty on prototypes causes the tests to fail to build #155

Open FutureAstroMiner opened 3 years ago

FutureAstroMiner commented 3 years ago

Using Object.defineProperty like:

Object.defineProperty(Creep.prototype, 'boosts', {
    get() {
        if (!this._boosts) {
            this._boosts = _.compact(_.unique(_.map(this.body as BodyPartDefinition[], bodyPart => bodyPart.boost)));
        }
        return this._boosts;
    },
    configurable: true,
});

and importing this into the main file causes the test to fail to build with a reference error ReferenceError: Creep is not defined

FutureAstroMiner commented 3 years ago

I have been looking around for a solution to this issue but I can't find one.

The alternative is to use Jest as this issue seams to have been fixed by eduter in screeps-typescript-jest-starter but integration tests are not available.

Should Object.defineProperty be done in a different way?

madrang commented 2 years ago

Try again with

enumerable: false,