Repository: DesignLiquido/delegua
Pull request #248 (2023-01-16 12:18:14)

Tradutor - Unário pode ser símbolo

github-actions[bot]: <!-- jest coverage report action for options with hash 825fd481788efa7282e8569b20438413 -->

## Coverage report 



| <div title="Status of coverage:&#10; 🟢 - ok&#10; 🟡 - slightly more than threshold&#10; 🔴 - under the threshold">St.<sup>:grey_question:</sup></div> | Category   | Percentage                                                     | Covered / Total |
| :----------------------------------------------------------------------------------------------------------------------------------------------------: | :--------- | :------------------------------------------------------------- | :-------------: |
|                                                                           🟡                                                                           | Statements | <div title="Base coverage is: 68.9%">68.92% (+0.02% 🔼)</div>  |    3763/5460    |
|                                                                           🔴                                                                           | Branches   | <div title="Base coverage is: 57.39%">57.48% (+0.09% 🔼)</div> |    1130/1966    |
|                                                                           🟡                                                                           | Functions  | 69.02%                                                         |     548/794     |
|                                                                           🟡                                                                           | Lines      | <div title="Base coverage is: 69.2%">69.21% (+0.02% 🔼)</div>  |    3640/5259    |


## Test suite run success
256 tests passing in 23 suites.

<p align="right">Report generated by <a href="https://github.com/ArtiomTr/jest-coverage-report-action">🧪jest coverage report action</a> from c1d17200d51b15495e597e05d6cbca8f1e39af0d</p>
<!-- Sticky Pull Request Comment -->

Patch:
diff --git a/fontes/tradutores/tradutor-javascript.ts b/fontes/tradutores/tradutor-javascript.ts
index 279722e8..d411c87d 100644
--- a/fontes/tradutores/tradutor-javascript.ts
+++ b/fontes/tradutores/tradutor-javascript.ts
@@ -520,7 +520,10 @@ export class TradutorJavaScript implements TradutorInterface {
     }
 
     traduzirConstrutoUnario(unario: Unario): string {
-        return this.traduzirSimboloOperador(unario.operador) + unario.direita.valor;
+        let resultado = '';
+        resultado += this.traduzirSimboloOperador(unario.operador);
+        resultado += unario.direita.valor ?? unario.direita.simbolo.lexema;
+        return resultado;
     }
 
     dicionarioConstrutos = {


Test patch:
diff --git a/testes/tradutores/tradutor-javascript.test.ts b/testes/tradutores/tradutor-javascript.test.ts
index 50b02d9b..c9aa48f6 100644
--- a/testes/tradutores/tradutor-javascript.test.ts
+++ b/testes/tradutores/tradutor-javascript.test.ts
@@ -44,6 +44,8 @@ describe('Tradutor Delégua -> JavaScript', () => {
                     'escreva(8 & 1)',
                     'escreva(8 ^ 1)',
                     'escreva(~2)',
+                    'var a = 3',
+                    'var c = -a + 3'
                 ],
                 -1
             );
@@ -55,6 +57,8 @@ describe('Tradutor Delégua -> JavaScript', () => {
             expect(resultado).toMatch(/console\.log\(8 & 1\)/i);
             expect(resultado).toMatch(/console\.log\(8 \^ 1\)/i);
             expect(resultado).toMatch(/console\.log\(~2\)/i);
+            expect(resultado).toMatch(/let a = 3/i);
+            expect(resultado).toMatch(/let c = -a \+ 3/i);
         });
 
         it('vetor acesso indice -> array/index', () => {