Skip to content

Instantly share code, notes, and snippets.

@charmjeh
Last active August 30, 2021 04:16
import { mount } from '@vue/test-utils';
const App = {
data() {
return {
deviceInfoSelected: {
comm_type: 'LTE',
lte_rsrp: -80,
},
statusCode: 0,
SIGNAL_LEVEL: {
EXCELLENT: 'EXCELLENT',
GOOD: 'GOOD',
MEDIUM: 'MEDIUM',
WEAK: 'WEAK',
CANNOT_FOUND: 'CANNOT_FOUND',
},
signalStatusCode: 'CANNOT_FOUND',
signalStatusText: '',
lteSignalList: {
EXCELLENT: '매우 좋음',
GOOD: '좋음',
MEDIUM: '나쁨',
WEAK: '매우 나쁨',
CANNOT_FOUND: '확인 불가',
},
};
},
created() {
this.signalStatusCode = this.getSignalStatus();
this.signalStatusText = this.lteSignalList[this.signalStatusCode];
},
template: `
<dl v-if="deviceInfoSelected.comm_type === 'LTE'">
<dt v-text="$t('device_info.signal_strength')"></dt>
<dd v-text="signalStatusText"></dd>
</dl>
`,
methods: {
getSignalStatus() {
return this.statusCode !== 3
? this.getSignalLevel(this.deviceInfoSelected.lte_rsrp)
: this.SIGNAL_LEVEL.CANNOT_FOUND;
},
getSignalLevel(lteRSRP) {
if (lteRSRP < -100) return '매우 나쁨';
if (lteRSRP < -90 || lteRSRP <= -100) return '나쁨';
if (lteRSRP < -80 || lteRSRP <= -90) return '좋음';
if (lteRSRP >= -80) return '매우 좋음';
return '매우 나쁨';
},
},
};
const $t = () => {};
let wrapper;
beforeEach(() => {
wrapper = mount(App, {
mocks: { $t },
});
});
describe('Counter.vue RSRP 전제 조건', () => {
it('Counter.vue가 잘 마운트되었다.', () => {
expect(wrapper.exists()).toBe(true);
});
it('통신 방식이 LAN/WIFI면 신호 세기가 보여지지 않는다', async () => {
await wrapper.vm.setData({
deviceInfoSelected: { comm_type: 'LAN' },
});
expect(wrapper.vm.deviceInfoSelected.comm_type).toBe('LAN');
expect(wrapper.find('dt').exists()).toBe(false);
expect(wrapper.find('dd').exists()).toBe(false);
});
it('LTE면 신호 세기가 보여진다', () => {
return wrapper
.setData({
deviceInfoSelected: { comm_type: 'LTE' },
})
.then(() => {
expect(wrapper.vm.deviceInfoSelected.comm_type).toBe('LTE');
expect(wrapper.find('dt').exists()).toBe(true);
expect(wrapper.find('dd').exists()).toBe(true);
});
});
it('Status Code가 3이면 확인 불가를 출력한다', () => {
return wrapper.setData({ statusCode: 3 }).then(() => {
expect(wrapper.vm.getSignalStatus()).toBe('CANNOT_FOUND');
});
});
});
describe('RSRP값을 검사한다', () => {
it('signal >= -80인 경우 매우 좋음 출력', () => {
expect(wrapper.vm.getSignalLevel(-79)).toEqual('매우 좋음');
expect(wrapper.vm.getSignalLevel(-80)).toEqual('매우 좋음');
});
it('-80 > signal >= -90인경우 좋음 출력', () => {
expect(wrapper.vm.getSignalLevel(-81)).toEqual('좋음');
expect(wrapper.vm.getSignalLevel(-85)).toEqual('좋음');
expect(wrapper.vm.getSignalLevel(-90)).toEqual('좋음');
});
it('-90 > signal >= -100인경우 나쁨 출력', () => {
expect(wrapper.vm.getSignalLevel(-91)).toEqual('나쁨');
expect(wrapper.vm.getSignalLevel(-95)).toEqual('나쁨');
expect(wrapper.vm.getSignalLevel(-100)).toEqual('나쁨');
});
it('-100 > signal인경우 매우 나쁨 출력', () => {
expect(wrapper.vm.getSignalLevel(-101)).toEqual('매우 나쁨');
expect(wrapper.vm.getSignalLevel(-102)).toEqual('매우 나쁨');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment