执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
'use strict';
 
var Enum = require('../src/js/enum');
 
describe('module:Enum', function() {
    var isModernBrowser = (function() {
        try {
            Object.defineProperty({}, 'x', {});
 
            return true;
        } catch (e) {
            return false;
        }
    })();
    var enumO;
 
    beforeEach(function() {
        enumO = new Enum();
    });
 
    describe('.set()', function() {
        it('상수명을 입력받을수있다.', function() {
            enumO.set('CONST1', 'CONST2');
 
            expect(enumO.CONST1).toBeDefined();
            expect(enumO.CONST2).toBeDefined();
        });
 
        it('배열로 상수를 지정할수있다', function() {
            enumO.set(['CONST3', 'CONST4']);
 
            expect(enumO.CONST3).toBeDefined();
            expect(enumO.CONST4).toBeDefined();
        });
 
        it('상수들은 서로다른 값을 갖는다', function() {
            enumO.set('CONST1', 'CONST2');
 
            expect(enumO.CONST1).not.toEqual(enumO.CONST2);
        });
 
        it('한번정의된 상수는 재정의 될수없다', function() {
            var originalValue;
 
            enumO.set('CONST1', 'CONST2');
            originalValue = enumO.CONST1;
            enumO.set('CONST1');
 
            expect(enumO.CONST1).toEqual(originalValue);
        });
    });
 
    describe('.getName()', function() {
        it('값을 입력해 상수명을 얻어올수있다', function() {
            var result;
 
            enumO.set('CONST1', 'CONST2');
            result = enumO.getName(enumO.CONST1);
 
            expect(result).toEqual('CONST1');
        });
    });
 
    describe('생성자 옵션으로 상수들을 지정할수있다', function() {
        it('상수들이 정상적으로 생성되었다', function() {
            var enumO2 = new Enum('CONST1', 'CONST2');
 
            expect(enumO2.CONST1).toBeDefined();
            expect(enumO2.CONST2).toBeDefined();
        });
 
        it('배열로 상수들이 정상적으로 생성되었다', function() {
            var enumO2 = new Enum(['CONST1', 'CONST2']);
 
            expect(enumO2.CONST1).toBeDefined();
            expect(enumO2.CONST2).toBeDefined();
        });
    });
 
    if (isModernBrowser) {
        describe('Modern Browser: 정의된 값은 변경할수없다', function() {
            beforeEach(function() {
                enumO.set('CONST1', 'CONST2');
            });
 
            it('상수의 값이 변경되지 않는다', function() {
                var desc = Object.getOwnPropertyDescriptor(enumO, 'CONST1');
 
                expect(desc.writable).toEqual(false);
                expect(desc.configurable).toEqual(false);
            });
        });
    }
});