Сгенерированные Jhipster ошибки теста внешнего интерфейса NPM lint - PullRequest
0 голосов
/ 28 января 2020

Я использую Jhipster и создал приложение шлюза с внешним интерфейсом. На github я создал конвейер, который пытается запустить внешние тесты, например, npm run test. Однако тесты дают сбой с более чем 200 ошибками в tyescript. В основном такая же ошибка, как показано ниже.

Я знаю, что могу go, хотя каждый файл и пытаюсь исправить все ошибки, но мне интересно, почему / как jhipster создал все недействительные файлы TS. Возможно, это проблема управления версиями, так как я делал обновление jhipster, но я не уверен, проходили ли эти тесты раньше, так как конвейер только новый, и я никогда не работал локально.

Для справки я использую последнюю версию jHipster 6.6. 0 и последний установленный выпуск LTS узла 12.4.1 и npm 6.13.6. Однако в сгенерированном Jhipster pom он получает зависимость для узла 12.13.1 и npm 6.13.4.

Более 260 из этих ошибок и некоторые другие

error    expected call-signature: 'countDeleteButtons' to have a typedef (tslint:typedef)          @typescript-eslint/tslint/config 

error    Async arrow function has no 'await' expression  @typescript-eslint/require-await

Также мне пришлось отредактировать многочисленные ts-файлы, чтобы исправить некорректный импорт модулей, чтобы завершить сборку веб-пакета, прежде чем идти так далеко. Опять же, просто интересно, как jHipster генерирует файлы с такими ошибками.

Обновление - я прошел мимо, настроив tslint, чтобы игнорировать эти ошибки. Однако я не уверен, почему файлы, сгенерированные Jhipster, содержат ошибки из коробки. Теперь «npm Запустить webpack: prod» завершается ошибкой с сотнями ошибок, таких как:

src/test/javascript/spec/app/entities/jawnapp/comment/comment.service.spec.ts:18:9 - error TS7034: Variable 'expectedResult' implicitly has type 'any' in some locations where its type cannot be determined.

src/test/javascript/spec/app/entities/jawnapp/comment/comment.service.spec.ts:48:16 - error TS7005: Variable 'expectedResult' implicitly has an 'any' type.

.yo-r c. json

{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.jawndoe.gate",
      "microservicePath": "../jawnapp"
    },
    "jhipsterVersion": "6.6.0",
    "applicationType": "gateway",
    "baseName": "jawngate",
    "packageName": "com.jawndoe.gate",
    "packageFolder": "com/jawndoe/gate",
    "serverPort": "8080",
    "authenticationType": "oauth2",
    "cacheProvider": "hazelcast",
    "enableHibernateCache": true,
    "websocket": "spring-websocket",
    "databaseType": "sql",
    "devDatabaseType": "h2Disk",
    "prodDatabaseType": "postgresql",
    "searchEngine": "elasticsearch",
    "messageBroker": "kafka",
    "serviceDiscoveryType": "eureka",
    "buildTool": "maven",
    "enableSwaggerCodegen": true,
    "useSass": true,
    "clientPackageManager": "npm",
    "clientFramework": "angularX",
    "clientTheme": "lux",
    "clientThemeVariant": "dark",
    "testFrameworks": ["gatling", "cucumber", "protractor"],
    "jhiPrefix": "gate",
    "entitySuffix": "",
    "dtoSuffix": "DTO",
    "otherModules": [],
    "enableTranslation": false,
    "blueprints": [],
    "embeddableLaunchScript": false,
    "creationTimestamp": 1579646926343,
    "herokuAppName": "jawngate",
    "herokuDeployType": "jar"
  }
}

1 Ответ

0 голосов
/ 29 января 2020

Если я копирую и вставляю ваш .yo-rc.json в пустой каталог и запускаю jhipster (с версией 6.6.0), похоже, все работает. Результаты npm test:

Test Suites: 11 passed, 11 total
Tests:       51 passed, 51 total
Snapshots:   0 total
Time:        21.041s
Ran all test suites.
Execution time: 32 s.

Я подозреваю, что что-то могло быть пропущено в процессе обновления. Я бы предложил создать новое приложение с 6.6.0, затем сравнить каталоги с SmartSynchronize и вручную внести изменения для обновления.

...