Skip to content

Commit

Permalink
Fixed scrolling in loggers view (#2555) (#2556)
Browse files Browse the repository at this point in the history
Fixed scrolling in loggers view (#2555)
  • Loading branch information
ulischulte committed Jun 18, 2023
1 parent d7f09c0 commit afb936b
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { shallowMount } from '@vue/test-utils';
import { describe, expect, it } from 'vitest';
import { nextTick } from 'vue';

import LoggersList from './loggers-list.vue';

describe('Loggers List', () => {
it('should extend list on scroll', async () => {
const loggers = createLoggers(500);
const loggersList = shallowMount(LoggersList, {
props: {
levels: ['OFF', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE'],
loggers: loggers,
loggersStatus: {},
},
});

expect(loggersList.vm.visibleLimit).toBe(25);
expect(loggersList.text()).toContain('my-logger-24');
expect(loggersList.text()).not.toContain('my-logger-25');

loggersList.vm.$refs.infiniteLoading.$emit('infinite', {
loaded: () => {},
complete: () => {},
});

expect(loggersList.vm.visibleLimit).toBe(50);
await nextTick();

expect(loggersList.text()).toContain('my-logger-49');
expect(loggersList.text()).not.toContain('my-logger-50');
});

function createLoggers(number: number): Array<any> {
return Array(number)
.fill(0)
.map((_, i) => createLogger(i));
}

function createLogger(i: number): any {
return {
name: `my-logger-${i}`,
level: [{ effectiveLevel: 'INFO', instanceId: '123' }],
};
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@
/>
</tr>
</tbody>
<InfiniteLoading @infinite="increaseScroll">
<InfiniteLoading
ref="infiniteLoading"
:identifier="loggers"
@infinite="increaseScroll"
>
<template #complete>
<span />
</template>
Expand All @@ -75,14 +79,17 @@
</template>

<script>
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import InfiniteLoading from 'v3-infinite-loading';
import 'v3-infinite-loading/lib/style.css';
import SbaTag from '@/components/sba-tag.vue';
import SbaLoggerControl from '@/views/instances/loggers/logger-control';
export default {
components: { InfiniteLoading, SbaLoggerControl },
components: { FontAwesomeIcon, SbaTag, InfiniteLoading, SbaLoggerControl },
props: {
levels: {
type: Array,
Expand All @@ -104,7 +111,7 @@ export default {
methods: {
increaseScroll($state) {
if (this.visibleLimit < this.loggers.length) {
this.visibleLimit += 50;
this.visibleLimit += 25;
$state.loaded();
} else {
$state.complete();
Expand Down

0 comments on commit afb936b

Please sign in to comment.