Jest: no code coverage available outside of root directory - code-coverage

In Jest we have the ability to point to different test directories. This includes directories outside the current application.
example:
base-ui-----------|
/tests--------|
file.test.js
/package.json
------------------|
site-ui-----------|
/tests--------|
/dist---------|
------------------|
account-ui--------|
/tests--------|
/dist---------|
------------------|
The package.json in base-ui runs all the tests.
it contains the "jest" config with "testPathDirs"
"testPathDirs": [
"<rootDir>/tests",
"../../../../site-ui/tests",
"../../../../account-ui/tests"
],
When I try to point the "collectCoverageFrom" to the same locations, it doesn't work.
"collectCoverageFrom": [
"**/*.{js,jsx}",
"../../../../site-ui/**/*.{js,jsx}",
"../../../../account-ui/**/*.{js,jsx}",
"!**/node_modules/**",
"!**/vendor/**"
],
I understand babel-istanbul takes the cwd, but I would presume that I would be able to back out a few levels.
Any idea why these globs wouldn't work?
Thanks.

It seems if I remove /tests from the "testPathDirs": [] the relative paths work.
It is summed up nicely in a comment by #cpojer in an issue unde jest's github
https://github.com/facebook/jest/issues/1211#issuecomment-246466808

Related

VS Code Windows 10: LaTeX Workshop will not compile

On Windows 10, I have MiKTex (as admin) installed and updated. Within VS Code, I have installed the LaTeX Workshop extension, but my document will not compile. I require lualatex, so I have moved that "recipe" to the "first" position in LaTeX Workshop's .json file, but compiling throws the message Recipe terminated with error. Looking at the console shows Undefined control sequence with my document's file path c:\Users\...etc... -- this is relating to the first line of the document [1,1] where I have the typical \documentclass[12pt]{article}.
It seems that the extension isn't able to locate the Path to the LaTeX executables...does this sound right? It is almost like it is looking in my files own directory for the LaTeX classes and packages, etc. In my Windows System Environment Variables, the path to C:\Program Files\MiKTeX 2.9\miktex\bin\x64\ seems to be correctly configured. Oddly, if I try to compile using pdflatex, it does not seem to encounter this specific issue (rather showing the error that I need to use lualatex, which I am trying to do).
Has anyone had this issue, or knows a way to fix it?
1: It might be some problem related to "pdftex vs pdflatex"... Now I have the same but looking for the solution... (Win10; VSCode + Latex Workshop extension; WSL2; TexLive 2020 on Ubuntu 20.04;)
2: I've found something... in: "latex-workshop.latex.tools"
{
"name": "pdflatex",
"command": "pdftex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
"env": {}
},
I changed "command": "pdftex" to "command": "pdflatex"
Now it is working.
Make sure you got TeX Live installed. The installation takes some time, but as you've installed it, it should work.

What is the purpose of buildResources folder in electron-builder building process?

I'm reading through electron and electron-builder docs, but I still do not quite understand what is the purpose of the buildResources folder?
Here's what a configuration doc for electron-builder says:
buildResources = build String - The path to build resources.
Kind of self-explanatory... But how or when they are involved in the build process, especially having that:
...build resources is not packed into the app. If you need to use some
files, e.g. as tray icon, please include required files explicitly
Can we simply put those icon files in an arbitrary folder and then copy over into the app/ manually (since we need to include buildResources manually anyway)?
TL;DR:
As far as I can tell from a quick glance at the source code, the buildResources folder is used to hold additional scripts, plugins, etc. that can be used by the package building software. Electron-builder doesn't generate the packages itself, it uses tools like NSIS.
Explanation:
I've had the same question and unfortunately find an answer for this isn't very straight-forward. The docs entry is pretty useless. I found out that someone asked about it in the GitHub issues but never got an answer.
I decided to dig in the code a bit myself to find out what it does. In NsisTargets.ts, you can see that the buildResources folder can contain custom includes and plugins for NSIS.
// NsisTargets.ts
taskManager.add(async () => {
const userPluginDir = path.join(packager.info.buildResourcesDir, pluginArch)
const stat = await statOrNull(userPluginDir)
if (stat != null && stat.isDirectory()) {
scriptGenerator.addPluginDir(pluginArch, userPluginDir)
}
})
// [...]
taskManager.add(async () => {
const customInclude = await packager.getResource(this.options.include, "installer.nsh")
if (customInclude != null) {
scriptGenerator.addIncludeDir(packager.info.buildResourcesDir)
scriptGenerator.include(customInclude)
}
})
and in pkg.ts it's used to load additional scripts to the pkg builder:
// pkg.ts
if (options.scripts != null) {
args.push("--scripts", path.resolve(this.packager.info.buildResourcesDir, options.scripts))
}
It appears as though buildResources can contain assets/scripts specifically used for the build process. That also explains why the contents of buildResources aren't included in the resulting app.asar file.
So, I'm going to say straight away that the documentation for this option is just awful.
Files included in buildResources will appear in the asar file which you can find documentation about on electron's website.
The option files will include files such as pictures which are not accessible in the asar file.
I.E.
given I have a folder called assets in my build folder I want to include with my app.
"files": [
"./build/**/*"
],
"directories": {
"buildResources": "assets"
}
This will put all folders inside build into the asar file, which you can then unpack by including,
"asarUnpack": "**/assets/*"
This will put the folder assets into the build folder in the app directory.

Is there a "correct" folder where to place test resources in dart?

I have a simple dart class I am trying to test.
To test it I need to open a txt file, feed the content to an instance of the class and check that the output is correct.
Where do I place this txt file? The txt file is useless outside of testing.
Also, related, how do I acess its directory consistently? I tried placing it in the test folder, but the problem is that:
System.currentDirectory
Returns a different directory if I am running the test on its own or the script calling all the other test dart files on at a time
I check if System.currentDirectory is the directory containing the pubspec.yaml file, if not I move the current directory upwards until I found the directory containing the pubpsec.yaml file and then continue with the test code.
Looks like package https://pub.dev/packages/resource is also suitable for this now.
I have still not found a definitive answer to this question. I've been looking for something similar to the testdata directory in Go and the src/test/resources directory in Java.
I'm using Android studio and have settled on using a test_data.dart file at the top of my test directory. In there I define my test data (mostly JSON) and then import it into my individual tests. This doesn't help if you need to deal with binary files but it has been useful for my JSON data. I'll also inject the JSON language with //language=json so I can open the fragment in a separate window to format.
//language=json
const consolidatedWeatherJson = '''{
"consolidated_weather": [
{
"id": 4907479830888448,
"weather_state_name": "Showers",
"weather_state_abbr": "s",
"wind_direction_compass": "SW",
"created": "2020-10-26T00:20:01.840132Z",
"applicable_date": "2020-10-26",
"min_temp": 7.9399999999999995,
"max_temp": 13.239999999999998,
"the_temp": 12.825,
"wind_speed": 7.876886316914553,
"wind_direction": 246.17046093256732,
"air_pressure": 997.0,
"humidity": 73,
"visibility": 11.037727173307882,
"predictability": 73
}
]
}
''';
Using the Alt + Enter key combination will bring up the Edit JSON Fragment option. Selecting that open the fragment in a new editor and any changes made there (formatting for example) will be updated in the fragment.
Not perfect but it solves my issues.

Sublime Automatic Build Selector

My current custom LaTeX sublime build goes:
{
"path":"/bin:/usr/texbin:/usr/bin",
"cmd": ["sh", "-c", "pdflatex main.tex && open main.pdf"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": ["source.latex"],
}
And it's working great when I select it manually. However, I'm switching back and forth between python scripts and my latex code, so I want to set the build system to "automatic" and let Sublime know that it needs to run LaTeX for .tex files. I tried source.tex, source.latex, source.LaTeX... I think I'm barking up the wrong tree.
edit: I found out that by pressing Cmd+Alt+P I get some information about what the Syntax Highlighter is aware of. It seems to suggest that the right selector would be text.tex.latex... but it doesn't work.
Have you tried just using "selector": "text.tex.latex", without the square brackets? Worked for me.

Check Free Space in Windows NT 5.1 and newer platforms in NSIS

I am trying to use this script:
http://nsis.sourceforge.net/CheckSpaceFree
But it lacks some fundamental checks and adjustments ( comments ) for the case(s), where:
1) The $INSTDIR Path contains Program Files directory, which is Access protected, therefore, even if running setup with admin priviledges, you still get 0 integer return when, for example, your path ( absolute or relative ) lands on program files directory.
Failing Test path: C:\Program Files(x86)\BlaBlaBla\
Working test path: C:\BlaBlaBla
2) If I try to use relative path containing one level up (..\BlaBlaBla) AND point it to Disk root ( C:\ ), then path summerizes to C:\..\BlaBlaBla , resulting that nsis simply crashes.
Any best-pratice based way to gracefully work around these limitations?
Thank you all for any input!
Have you tried DriveSpace from the "useful headers" included with NSIS?

Resources