diff --git a/src/services/chart/charts/classes/test.ts b/src/services/chart/charts/classes/test.ts index 0ca63d174..ea64040f3 100644 --- a/src/services/chart/charts/classes/test.ts +++ b/src/services/chart/charts/classes/test.ts @@ -42,4 +42,17 @@ export default class TestChart extends Chart { foo: update }); } + + @autobind + public async decrement() { + const update: Obj = {}; + + update.total = -1; + update.dec = 1; + this.total--; + + await this.inc({ + foo: update + }); + } } diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts index 9dc250f75..df4272c2d 100644 --- a/src/services/chart/core.ts +++ b/src/services/chart/core.ts @@ -122,7 +122,7 @@ export default abstract class Chart> { for (const [k, v] of Object.entries(columns)) { if (v > 0) query[k] = () => `"${k}" + ${v}`; - if (v < 0) query[k] = () => `"${k}" - ${v}`; + if (v < 0) query[k] = () => `"${k}" - ${Math.abs(v)}`; } return query; diff --git a/test/chart.ts b/test/chart.ts index bd26f3bf3..85b9d2525 100644 --- a/test/chart.ts +++ b/test/chart.ts @@ -106,6 +106,30 @@ describe('Chart', () => { }); })); + + it('Can updates (dec)', async(async () => { + await testChart.decrement(); + + const chartHours = await testChart.getChart('hour', 3); + const chartDays = await testChart.getChart('day', 3); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [1, 0, 0], + inc: [0, 0, 0], + total: [-1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [1, 0, 0], + inc: [0, 0, 0], + total: [-1, 0, 0] + }, + }); + })); + it('Empty chart', async(async () => { const chartHours = await testChart.getChart('hour', 3); const chartDays = await testChart.getChart('day', 3);