Architect#scheduleBuilder or context.scheduleBuilder results in incorrect target on context

Aberta
#19,905 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
38/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
typescript
Domínio
build-system

Direção de pesquisa

Comece por packages/angular_devkit/architect/src/index_spec.ts e reproduza a falha usando yarn bazel test //packages/angular_devkit/architect:architect_test. Rastreie o contexto do builder por meio de packages/angular_devkit/architect/src/create-builder.ts, para onde o stack aponta, e verifique se scheduleBuilder fornece um target que corresponda à sua interface TypeScript declarada. Está concluído quando o teste focado de architect passar com um target válido.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

area: @angular-devkit/architect freq1: low severity3: broken type: bug/fix

🐞 Bug report

Command (mark with an x)
  • new
  • build
  • serve
  • test
  • e2e
  • generate
  • add
  • update
  • lint
  • extract-i18n
  • run
  • config
  • help
  • version
  • doc
Is this a regression?

Not that I know of

Description

If a builder is executed via architect.scheduleBuilder, that builder is passed a context that doesn't match the declared interface in typescript. The same happens when using context.scheduleBuilder if no target is passed via the scheduleOptions.

console.log(context.target);
// logs {project: undefined, target: undefined, configuration: undefined}
// but type is {project: string, target: string, configuration?: string} | undefined

🔬 Minimal Reproduction

Run yarn bazel test //packages/angular_devkit/architect:architect_test with the following patch:

diff --git a/packages/angular_devkit/architect/src/index_spec.ts b/packages/angular_devkit/architect/src/index_spec.ts
index 57d76c5a6..bbd59b3fc 100644
--- a/packages/angular_devkit/architect/src/index_spec.ts
+++ b/packages/angular_devkit/architect/src/index_spec.ts
@@ -36,10 +36,12 @@ describe('architect', () => {
 
     options = {};
     called = 0;
-    testArchitectHost.addBuilder('package:test', createBuilder(async o => {
+    testArchitectHost.addBuilder('package:test', createBuilder(async (o, ctx) => {
       called++;
       options = o;
 
+      expect(ctx.target != null && ctx.target.target == null).toBe(false);
+
       return new Promise<BuilderOutput>(resolve => {
         setTimeout(() => resolve({ success: true }), 10);
       });

🔥 Exception or Error


Failures:
1) architect runs builders parallel
  Message:
    Expected true to be false.
  Stack:
    Error: Expected true to be false.
        at 
        at packages/angular_devkit/architect/src/index_spec.ts:43:63
        at onInput (packages/angular_devkit/architect/src/create-builder.ts:201:20)
        at SafeSubscriber._next (packages/angular_devkit/architect/src/create-builder.ts:87:17)

🌍 Your Environment

Master branch on this repo

Anything else relevant?

Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
16h 35min
PRs com merge (30d)
176

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de angular/angular-cli

Todas as issues de angular/angular-cli

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.