diff --git a/source/app/mocks/api/axios/get/wakatime.mjs b/source/app/mocks/api/axios/get/wakatime.mjs index 0baa0f0f..4fe08b41 100644 --- a/source/app/mocks/api/axios/get/wakatime.mjs +++ b/source/app/mocks/api/axios/get/wakatime.mjs @@ -7,13 +7,19 @@ console.debug(`metrics/compute/mocks > mocking wakatime api result > ${url}`) const stats = (array) => { const elements = [] - let result = new Array(4+faker.random.number(2)).fill(null).map(_ => ({ + let results = new Array(4+faker.random.number(2)).fill(null).map(_ => ({ get digital() { return `${this.hours}:${this.minutes}` }, hours:faker.random.number(1000), minutes:faker.random.number(1000), - name:array ? faker.random.arrayElement(array) : faker.lorem.words(), - percent:faker.random.number(100), total_seconds:faker.random.number(1000000), + name:array ? faker.random.arrayElement(array) : faker.random.words(2).replace(/ /g, "-").toLocaleLowerCase(), + percent:0, total_seconds:faker.random.number(1000000), })) - return result.filter(({name}) => elements.includes(name) ? false : (elements.push(name), true)) + results = results.filter(({name}) => elements.includes(name) ? false : (elements.push(name), true)) + let percents = 100 + for (const result of results) { + result.percent = 1+faker.random.number(percents-1) + percents -= result.percent + } + return results } return ({ status:200, diff --git a/source/app/web/statics/app.placeholder.js b/source/app/web/statics/app.placeholder.js index dfab13a2..2d21f03c 100644 --- a/source/app/web/statics/app.placeholder.js +++ b/source/app/web/statics/app.placeholder.js @@ -420,11 +420,18 @@ get wakatime() { const stats = (array) => { const elements = [] - let result = new Array(4+faker.random.number(2)).fill(null).map(_ => ({ - name:array ? faker.random.arrayElement(array) : faker.lorem.words(), - percent:faker.random.number(100)/100, total_seconds:faker.random.number(1000000), + let results = new Array(4+faker.random.number(2)).fill(null).map(_ => ({ + name:array ? faker.random.arrayElement(array) : faker.random.words(2).replace(/ /g, "-").toLocaleLowerCase(), + percent:0, total_seconds:faker.random.number(1000000), })) - return result.filter(({name}) => elements.includes(name) ? false : (elements.push(name), true)).sort((a, b) => b.percent - a.percent) + let percents = 100 + for (const result of results) { + result.percent = 1+faker.random.number(percents-1) + percents -= result.percent + result.percent /= 100 + } + results.filter(({name}) => elements.includes(name) ? false : (elements.push(name), true)) + return results.sort((a, b) => b.percent - a.percent) } return { sections:options["wakatime.sections"].split(",").map(x => x.trim()).filter(x => x),