summaryrefslogtreecommitdiffstats
path: root/testapi/3rd_party/static/testapi-ui/Gruntfile.js
blob: f82269e306daa7e834efb84da752a43a2e3c10aa (plain)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
module.exports = function (grunt) {
	require('load-grunt-tasks')(grunt);
	require('grunt-protractor-coverage')(grunt);
	grunt.loadNpmTasks('grunt-shell-spawn');
	grunt.loadNpmTasks('grunt-wait');
	grunt.loadNpmTasks('grunt-contrib-copy');
	grunt.loadNpmTasks('grunt-contrib-connect');
	grunt.initConfig({
		connect: {
			server: {
				options: {
					port: 8000,
					base: './',
					middleware: function(connect, options, middlewares) {
						middlewares.unshift(function(req, res, next) {
							if (req.method.toUpperCase() == 'POST') req.method='GET';
							return next();
						});
						return middlewares;
					}
				}
			}
		},
		copy: {
			assets: {
			  expand: true,
			  cwd: 'assets',
			  src: '**',
			  dest: 'testapi-ui/assets',
			},
			components: {
				expand: true,
				cwd: '../../../opnfv_testapi/ui',
				src: '**',
				dest: 'components',
			},
			copyComponents: {
				expand: true,
				cwd: 'components',
				src: '**',
				dest: 'testapi-ui/components',
			},
			shared: {
				expand: true,
				cwd: 'shared',
				src: '**',
				dest: 'testapi-ui/shared',
			},
			filesPng: {
				expand: true,
				src: '*.png',
				dest: 'testapi-ui/',
			},
			filesIco: {
				expand: true,
				src: '*.ico',
				dest: 'testapi-ui/',
			},
			filesJs: {
				expand: true,
				src: 'app.js',
				dest: 'testapi-ui/',
			},
			filesJson: {
				expand: true,
				src: 'config.json',
				dest: 'testapi-ui/',
			}
		},
		wait: {
			default: {
				options: {
					delay: 3000
				}
			}
		},
		shell: {
			updateSelenium: {
				command: 'node_modules/protractor/bin/webdriver-manager update',
				options: {
		      		async: false
		    	}
			},
			startSelenium: {
				command: 'node_modules/protractor/bin/webdriver-manager start',
				options: {
			      async: true
			    }
			},
			deleteFiles: {
				command: 'rm -r testapi-ui && rm -r components',
				options: {
			      async: false
			    }
			},
			options: {
		        stdout: false,
		        stderr: false
		    }
		},
		instrument: {
	        files: ['components/**/*.js'],
	        options: {
	        	lazy: false,
				basePath: "./testapi-ui/"
	        }
	    },
		karma: {
			unit: {
				configFile: '../../../opnfv_testapi/tests/UI/karma.conf.js'
			}
		},
		protractor_coverage: {
		    options: {
		        keepAlive: true,
		        noColor: false,
		        coverageDir: '../../../opnfv_testapi/tests/UI/coverage',
		        args: {
					specs: ['../../../opnfv_testapi/tests/UI/e2e/podsControllerSpec.js',
							'../../../opnfv_testapi/tests/UI/e2e/projectControllerSpec.js']
		        }
		    },
		    local: {
		        options: {
		            configFile: '../../../opnfv_testapi/tests/UI/protractor-conf.js'
		        }
		    }
		},
		makeReport: {
	        src: '../../../opnfv_testapi/tests/UI/coverage/*.json',
	        options: {
	            print: 'detail'
	        }
	    }
	});
	grunt.registerTask('test', [
		'karma:unit'
	]);
	grunt.registerTask('e2e', [
		'copy:assets',
		'copy:components',
		'copy:copyComponents',
		'copy:shared',
		'copy:filesPng',
		'copy:filesIco',
		'copy:filesJs',
		'copy:filesJson',
		'instrument',
		'connect',
		'shell:updateSelenium',
		'shell:startSelenium',
		'wait:default',
		'protractor_coverage',
		'makeReport',
		'shell:deleteFiles'

	]);
}