Skip to content

Test failing when using not English language #72

@josecelano

Description

@josecelano

A lot of tests fail if your default system language is not English. You can reproduce the error with for example:

LANGUAGE=de yarn test

This error is the same as this one. We fixed that one using regular expressions but I think It would be better to set the default language to English before running the tests.

I think we could set the LANGUAGE env var in the test helper function:

export async function newSimpleGit(baseDir: string): Promise<SimpleGit> {
  return simpleGit(baseDir)
}

Like this:

export async function newSimpleGit(baseDir: string): Promise<SimpleGit> {
  const git = simpleGit(baseDir)
  git.env({
    LANGUAGE: 'en'
  })
  return git
}

That works for unit tests but not for e2e tests because the GitRepo class relies on git messages to detect a repository without commits. In fact, the action would not work on systems not working in English.

export class GitRepo {
  ...
  async hasCommits(): Promise<boolean> {
    // TODO: find a better way to check if the repo has commits
    const currentBranch = await this.getCurrentBranch()
    try {
      await this.log()
    } catch (err) {
      if (
        (err as GitResponseError).message.includes(
          `fatal: your current branch '${currentBranch}' does not have any commits yet`
        )
      ) {
        // No commits yet
        return false
      } else {
        throw err
      }
    }
    return true
  }
  ...
}

We have to change that method too. The same message in German is:

fatal: Ihr aktueller Branch 'main' hat noch keine Commits.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions