jesec / flood

A modern web UI for various torrent clients with a Node.js backend and React frontend.
https://flood.js.org
GNU General Public License v3.0
2.08k stars 128 forks source link

Tests run against globally installed `flood` and not current version #716

Open FinalDoom opened 6 months ago

FinalDoom commented 6 months ago

Type: Bug Report

Your Environment

Current master e20a2f0111abaf81eb405a90bccd6a659be2c950 but really any version to date.

Summary

Tests are run through root/server/.jest/*.setup.js using node flood ... command. This fails if flood isn't globally installed.

And since you're trying to validate the current development version, this is wrong anyway. It should be using node dist/index.js ... and have a prerequisite to have built the project (assumed to be the case in current workflows)

Expected Behavior

Run tests against current development version.

Current Behavior

Tests are run against globally installed (very old) version, or "bleeding edge" master version if bodged in, but not current branch/code.

Possible Solution

See summary

Steps to Reproduce

Run npm test and observe behavior, check jest config files, etc.

Context

Correct testing

trim21 commented 2 months ago

I don't think so, we didn't install flood globally in ci

https://github.com/jesec/flood/blob/e36bca468fa71493c9d4cec678eaa060fa1fa017/.github/workflows/test-backend.yml#L47

FinalDoom commented 2 months ago

That's not what this ticket is about. This references NPM test https://github.com/jesec/flood/blob/master/package.json#L64 which runs https://github.com/jesec/flood/blob/master/server/.jest/auth.setup.js#L8 et al. This runs global flood.

trim21 commented 2 months ago

is doesn't, actually. it just override argv so our argv parser could parse config from it.

trim21 commented 2 months ago

this process.argv is not to be used to start a new process.

FinalDoom commented 2 months ago

Pretty sure I wrote this after discovering it was running against a different version than what I had written. But I don't care enough to re-validate.

IE. the ticket states

This fails if flood isn't globally installed.

That's pretty easy to validate. But I won't do it again.

trim21 commented 2 months ago

maybe another reason causing this