linkedin2cv 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.buildpacks +2 -0
  3. data/.bundle/config +1 -0
  4. data/.gitignore +7 -0
  5. data/.node +1 -0
  6. data/.travis.yml +21 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +119 -0
  9. data/Procfile +3 -0
  10. data/README.md +32 -0
  11. data/Rakefile +6 -0
  12. data/Vagrantfile +16 -0
  13. data/app/routes/api.rb +101 -0
  14. data/app/routes/web.rb +132 -0
  15. data/app/views/hello.erb +36 -0
  16. data/app/views/home.erb +12 -0
  17. data/app/views/index.haml +11 -0
  18. data/app.rb +26 -0
  19. data/config.ru +6 -0
  20. data/config.yml +31 -0
  21. data/lib/linkedin2cv/cli/command.rb +46 -0
  22. data/lib/linkedin2cv/converter.rb +116 -0
  23. data/lib/linkedin2cv/logging.rb +35 -0
  24. data/lib/linkedin2cv/renderer/latex_renderer.rb +64 -0
  25. data/lib/linkedin2cv/version.rb +3 -0
  26. data/linkedin2cv.gemspec +49 -0
  27. data/public/.bowerrc +3 -0
  28. data/public/.editorconfig +21 -0
  29. data/public/.gitattributes +1 -0
  30. data/public/.gitignore +5 -0
  31. data/public/.jshintrc +24 -0
  32. data/public/.travis.yml +7 -0
  33. data/public/Gruntfile.js +487 -0
  34. data/public/app/.buildignore +1 -0
  35. data/public/app/.htaccess +543 -0
  36. data/public/app/404.html +157 -0
  37. data/public/app/favicon.ico +0 -0
  38. data/public/app/images/yeoman.png +0 -0
  39. data/public/app/index.html +73 -0
  40. data/public/app/robots.txt +3 -0
  41. data/public/app/scripts/app.js +20 -0
  42. data/public/app/scripts/controllers/main.js +21 -0
  43. data/public/app/scripts/services/linkedin2cv.js +93 -0
  44. data/public/app/styles/main.scss +95 -0
  45. data/public/app/views/main.html +23 -0
  46. data/public/bower.json +19 -0
  47. data/public/karma-e2e.conf.js +54 -0
  48. data/public/karma.conf.js +56 -0
  49. data/public/package.json +41 -0
  50. data/public/test/.jshintrc +36 -0
  51. data/public/test/runner.html +10 -0
  52. data/public/test/spec/controllers/main.js +22 -0
  53. data/public/test/spec/services/happyapi.js +18 -0
  54. data/public/test/spec/services/happyservice.js +18 -0
  55. data/spec/converter_spec.rb +83 -0
  56. data/spec/mocks/config.yml +31 -0
  57. data/spec/mocks/profile.json +866 -0
  58. data/spec/spec_helper.rb +13 -0
  59. data/templates/cv.erb +327 -0
  60. data/templates/foo.asciidoc +11 -0
  61. data/templates/foo.latex +230 -0
  62. data/test.rb +109 -0
  63. data/test.sh +6 -0
  64. data/teust.rb +75 -0
  65. metadata +434 -0
Binary file
Binary file
@@ -0,0 +1,73 @@
1
+ <!doctype html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <title>Linkedin2CV | Linkedin2CV things</title>
9
+ <meta name="description" content="">
10
+ <meta name="viewport" content="width=device-width">
11
+ <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
12
+ <!-- build:css styles/vendor.css -->
13
+ <!-- bower:css -->
14
+ <!-- endbower -->
15
+ <!-- endbuild -->
16
+ <!-- build:css({.tmp,app}) styles/main.css -->
17
+ <link rel="stylesheet" href="styles/main.css">
18
+ <!-- endbuild -->
19
+ </head>
20
+ <body ng-app="linkedin2cv App">
21
+ <!--[if lt IE 7]>
22
+ <p class="browselinkedin2cv ">You are using an <strong>outdated</strong> browser. Please <a href="http://browselinkedin2cv .com/">upgrade your browser</a> to improve your experience.</p>
23
+ <![endif]-->
24
+
25
+ <!-- Add your site or application content here -->
26
+ <div class="container" ng-view=""></div>
27
+
28
+ <!-- Google Analytics: change UA-XXXXX-X to be your site's ID -->
29
+ <script>
30
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
31
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
32
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
33
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
34
+
35
+ ga('create', 'UA-XXXXX-X');
36
+ ga('send', 'pageview');
37
+ </script>
38
+
39
+ <!--[if lt IE 9]>
40
+ <script src="bower_components/es5-shim/es5-shim.js"></script>
41
+ <script src="bower_components/json3/lib/json3.min.js"></script>
42
+ <![endif]-->
43
+
44
+ <!-- build:js scripts/vendor.js -->
45
+ <!-- bower:js -->
46
+ <script src="bower_components/jquery/dist/jquery.js"></script>
47
+ <script src="bower_components/angular/angular.js"></script>
48
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/affix.js"></script>
49
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/alert.js"></script>
50
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/button.js"></script>
51
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/carousel.js"></script>
52
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/collapse.js"></script>
53
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/dropdown.js"></script>
54
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/tab.js"></script>
55
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/transition.js"></script>
56
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/scrollspy.js"></script>
57
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/modal.js"></script>
58
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/tooltip.js"></script>
59
+ <script src="bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/popover.js"></script>
60
+ <script src="bower_components/angular-resource/angular-resource.js"></script>
61
+ <script src="bower_components/angular-cookies/angular-cookies.js"></script>
62
+ <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
63
+ <script src="bower_components/angular-route/angular-route.js"></script>
64
+ <!-- endbower -->
65
+ <!-- endbuild -->
66
+
67
+ <!-- build:js({.tmp,app}) scripts/scripts.js -->
68
+ <script src="scripts/app.js"></script>
69
+ <script src="scripts/controllers/main.js"></script>
70
+ <script src="scripts/services/linkedin2cv api.js"></script>
71
+ <!-- endbuild -->
72
+ </body>
73
+ </html>
@@ -0,0 +1,3 @@
1
+ # robotstxt.org
2
+
3
+ User-agent: *
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ angular
4
+ .module('linkedin2cv App', [
5
+ 'ngCookies',
6
+ 'ngResource',
7
+ 'ngSanitize',
8
+ 'ngRoute',
9
+ 'linkedin2cv Services'
10
+ ])
11
+ .config(function ($routeProvider) {
12
+ $routeProvider
13
+ .when('/', {
14
+ templateUrl: 'views/main.html',
15
+ controller: 'MainCtrl'
16
+ })
17
+ .otherwise({
18
+ redirectTo: '/'
19
+ });
20
+ });
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ angular.module('linkedin2cv App')
4
+ .controller('MainCtrl', ['$scope', '$http', 'Linkedin2CV', function ($scope, $http, Linkedin2CV) {
5
+
6
+ // Default website
7
+ $scope.message = 'Sockets will replace me - enter stuff above to find out!'
8
+
9
+ /**
10
+ * Generate a Linkedin2CV
11
+ */
12
+ $scope.generateLinkedin2CV = function (ping) {
13
+
14
+ var data = Linkedin2CV.getResponse({'message': ping})
15
+ data.then(function (result) {
16
+ console.log(result)
17
+
18
+ $scope.message = 'API said: ' + result.message;
19
+ });
20
+ }
21
+ }]);
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var linkedin2cv Services = angular.module('linkedin2cv Services', ['ngResource']);
4
+
5
+ linkedin2cv Services.factory('Linkedin2CV', ['$q', '$rootScope', '$interval', function($q, $rootScope, $interval) {
6
+ // We return this object to anything injecting our service
7
+ var Service = {};
8
+
9
+ // Keep a pending request here
10
+ var callback = {};
11
+
12
+ var pongCallback = {};
13
+
14
+ var url = 'websocketurl';
15
+ var ws = new WebSocket(url);
16
+
17
+ ws.onopen = function(){
18
+ console.log("Socket has been opened!");
19
+
20
+ pingPong()
21
+ console.log("Setup game of ping-pong")
22
+ };
23
+
24
+ ws.onclose = function(){
25
+ console.log("Socket has been closed!");
26
+ };
27
+
28
+ ws.onmessage = function(response) {
29
+ // Check for ping!
30
+ var obj = JSON.parse(response.data)
31
+ console.log(obj.message)
32
+
33
+ if (obj.message != 'pong') {
34
+ listener(obj);
35
+ }
36
+ };
37
+
38
+ /**
39
+ * Play ping/pong with the server to ensure keep alive.
40
+ *
41
+ * This requires the API to behave. Just send a 'pong' response
42
+ *
43
+ * @returns {*}
44
+ */
45
+ function pingPong() {
46
+
47
+ var pong = function() {
48
+ var request = JSON.stringify({'message': 'ping'});
49
+ console.log('Sending pong request: ' + request);
50
+ ws.send(request);
51
+ }
52
+
53
+ // Set refresh to every 10s
54
+ var promise = $interval(pong, 10000);
55
+ promise.then(function(result) {
56
+ console.log("got pong result: " + result)
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Send a socket request.
62
+ *
63
+ * @param request The JSON request.
64
+ * @param _callback An optional request callback. Generally this is not required.
65
+ * @returns {*}
66
+ */
67
+ function sendRequest(request, _callback) {
68
+ var defer = $q.defer();
69
+
70
+ if (_callback == null) {
71
+ callback = {
72
+ time: new Date(),
73
+ cb:defer
74
+ };
75
+
76
+ }
77
+ console.log('Sending request', request);
78
+ ws.send(JSON.stringify(request));
79
+ return defer.promise;
80
+ }
81
+
82
+ function listener(data) {
83
+ $rootScope.$apply(callback.cb.resolve(data));
84
+ }
85
+
86
+ // Define a "getter" for getting some socket data
87
+ Service.getResponse = function(message) {
88
+ // Returns a $q.$promise
89
+ return sendRequest(message);
90
+ }
91
+
92
+ return Service;
93
+ }]);
@@ -0,0 +1,95 @@
1
+ $icon-font-path: "/bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap/";
2
+
3
+ @import 'bootstrap-sass-official/vendor/assets/stylesheets/bootstrap';
4
+
5
+ // bower:scss
6
+ @import "../bower_components/bootstrap-sass-official/vendor/assets/stylesheets/bootstrap.scss";
7
+ // endbower
8
+
9
+ .browselinkedin2cv {
10
+ margin: 0.2em 0;
11
+ background: #ccc;
12
+ color: #000;
13
+ padding: 0.2em 0;
14
+ }
15
+
16
+ /* Space out content a bit */
17
+ body {
18
+ padding-top: 20px;
19
+ padding-bottom: 20px;
20
+ }
21
+
22
+ /* Everything but the jumbotron gets side spacing for mobile first views */
23
+ .header,
24
+ .marketing,
25
+ .footer {
26
+ padding-left: 15px;
27
+ padding-right: 15px;
28
+ }
29
+
30
+ /* Custom page header */
31
+ .header {
32
+ border-bottom: 1px solid #e5e5e5;
33
+ }
34
+
35
+ /* Make the masthead heading the same height as the navigation */
36
+ .header h3 {
37
+ margin-top: 0;
38
+ margin-bottom: 0;
39
+ line-height: 40px;
40
+ padding-bottom: 19px;
41
+ }
42
+
43
+ /* Custom page footer */
44
+ .footer {
45
+ padding-top: 19px;
46
+ color: #777;
47
+ border-top: 1px solid #e5e5e5;
48
+ }
49
+
50
+ .container-narrow > hr {
51
+ margin: 30px 0;
52
+ }
53
+
54
+ /* Main marketing message and sign up button */
55
+ .jumbotron {
56
+ text-align: center;
57
+ border-bottom: 1px solid #e5e5e5;
58
+ }
59
+
60
+ .jumbotron .btn {
61
+ font-size: 21px;
62
+ padding: 14px 24px;
63
+ }
64
+
65
+ /* Supporting marketing content */
66
+ .marketing {
67
+ margin: 40px 0;
68
+ }
69
+
70
+ .marketing p + h4 {
71
+ margin-top: 28px;
72
+ }
73
+
74
+ /* Responsive: Portrait tablets and up */
75
+ @media screen and (min-width: 768px) {
76
+ .container {
77
+ max-width: 730px;
78
+ }
79
+
80
+ /* Remove the padding we set earlier */
81
+ .header,
82
+ .marketing,
83
+ .footer {
84
+ padding-left: 0;
85
+ padding-right: 0;
86
+ }
87
+ /* Space out the masthead */
88
+ .header {
89
+ margin-bottom: 30px;
90
+ }
91
+ /* Remove the bottom border on the jumbotron for visual effect */
92
+ .jumbotron {
93
+ border-bottom: 0;
94
+ }
95
+ }
@@ -0,0 +1,23 @@
1
+ <div class="header">
2
+ <ul class="nav nav-pills pull-right">
3
+ <li class="active"><a ng-href="#">Home</a></li>
4
+ <li><a ng-href="http://github.com/mefellows/linkedin2cv -generator">About</a></li>
5
+ </ul>
6
+ <h1 class="text-muted">Linkedin2CV App</h1>
7
+ </div>
8
+
9
+ <div class="jumbotron">
10
+ <h2>Enter your website</h2 >
11
+ <input ng-model="website" />
12
+ <p><a class="btn btn-lg btn-success" ng-click='generateLinkedin2CV(website)'>Search<span class="glyphicon glyphicon-ok"></span></a></p>
13
+ </div>
14
+
15
+ <div class="row marketing">
16
+ <h3 ng-model="message">{{message}}</h3>
17
+ </table>
18
+ </div>
19
+
20
+
21
+ <div class="footer">
22
+ <p>Built with <span class="glyphicon glyphicon-heart"></span> by <a href="http://www.onegeek.com.au">Matt Fellows</a></p>
23
+ </div>
data/public/bower.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "linkedin2cv -generator",
3
+ "version": "0.0.0",
4
+ "dependencies": {
5
+ "angular": "1.2.15",
6
+ "json3": "~3.2.6",
7
+ "es5-shim": "~2.1.0",
8
+ "jquery": "~1.11.0",
9
+ "bootstrap-sass-official": "~3.1.0",
10
+ "angular-resource": "1.2.15",
11
+ "angular-cookies": "1.2.15",
12
+ "angular-sanitize": "1.2.15",
13
+ "angular-route": "1.2.15"
14
+ },
15
+ "devDependencies": {
16
+ "angular-mocks": "1.2.15",
17
+ "angular-scenario": "1.2.15"
18
+ }
19
+ }
@@ -0,0 +1,54 @@
1
+ // Karma configuration
2
+ // http://karma-runner.github.io/0.10/config/configuration-file.html
3
+
4
+ module.exports = function(config) {
5
+ config.set({
6
+ // base path, that will be used to resolve files and exclude
7
+ basePath: '',
8
+
9
+ // testing framework to use (jasmine/mocha/qunit/...)
10
+ frameworks: ['ng-scenario'],
11
+
12
+ // list of files / patterns to load in the browser
13
+ files: [
14
+ 'test/e2e/**/*.js'
15
+ ],
16
+
17
+ // list of files / patterns to exclude
18
+ exclude: [],
19
+
20
+ // web server port
21
+ port: 8080,
22
+
23
+ // level of logging
24
+ // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
25
+ logLevel: config.LOG_INFO,
26
+
27
+
28
+ // enable / disable watching file and executing tests whenever any file changes
29
+ autoWatch: false,
30
+
31
+
32
+ // Start these browsers, currently available:
33
+ // - Chrome
34
+ // - ChromeCanary
35
+ // - Firefox
36
+ // - Opera
37
+ // - Safari (only Mac)
38
+ // - PhantomJS
39
+ // - IE (only Windows)
40
+ browsers: ['Chrome'],
41
+
42
+
43
+ // Continuous Integration mode
44
+ // if true, it capture browsers, run tests and exit
45
+ singleRun: false
46
+
47
+ // Uncomment the following lines if you are using grunt's server to run the tests
48
+ // proxies: {
49
+ // '/': 'http://localhost:9000/'
50
+ // },
51
+ // URL root prevent conflicts with the site root
52
+ // urlRoot: '_karma_'
53
+ });
54
+ };
@@ -0,0 +1,56 @@
1
+ // Karma configuration
2
+ // http://karma-runner.github.io/0.10/config/configuration-file.html
3
+
4
+ module.exports = function(config) {
5
+ config.set({
6
+ // base path, that will be used to resolve files and exclude
7
+ basePath: '',
8
+
9
+ // testing framework to use (jasmine/mocha/qunit/...)
10
+ frameworks: ['jasmine'],
11
+
12
+ // list of files / patterns to load in the browser
13
+ files: [
14
+ 'app/bower_components/angular/angular.js',
15
+ 'app/bower_components/angular-mocks/angular-mocks.js',
16
+ 'app/bower_components/angular-resource/angular-resource.js',
17
+ 'app/bower_components/angular-cookies/angular-cookies.js',
18
+ 'app/bower_components/angular-sanitize/angular-sanitize.js',
19
+ 'app/bower_components/angular-route/angular-route.js',
20
+ 'app/scripts/*.js',
21
+ 'app/scripts/**/*.js',
22
+ 'test/mock/**/*.js',
23
+ 'test/spec/**/*.js'
24
+ ],
25
+
26
+ // list of files / patterns to exclude
27
+ exclude: [],
28
+
29
+ // web server port
30
+ port: 8080,
31
+
32
+ // level of logging
33
+ // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
34
+ logLevel: config.LOG_INFO,
35
+
36
+
37
+ // enable / disable watching file and executing tests whenever any file changes
38
+ autoWatch: false,
39
+
40
+
41
+ // Start these browsers, currently available:
42
+ // - Chrome
43
+ // - ChromeCanary
44
+ // - Firefox
45
+ // - Opera
46
+ // - Safari (only Mac)
47
+ // - PhantomJS
48
+ // - IE (only Windows)
49
+ browsers: ['Chrome'],
50
+
51
+
52
+ // Continuous Integration mode
53
+ // if true, it capture browsers, run tests and exit
54
+ singleRun: false
55
+ });
56
+ };
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "linkedin2cv generator",
3
+ "version": "0.0.0",
4
+ "dependencies": {},
5
+ "devDependencies": {
6
+ "grunt": "~0.4.1",
7
+ "grunt-autoprefixer": "~0.4.0",
8
+ "grunt-bower-install": "~1.0.0",
9
+ "grunt-concurrent": "~0.5.0",
10
+ "grunt-contrib-clean": "~0.5.0",
11
+ "grunt-contrib-compass": "~0.7.2",
12
+ "grunt-contrib-concat": "~0.3.0",
13
+ "grunt-contrib-connect": "~0.5.0",
14
+ "grunt-contrib-copy": "~0.4.1",
15
+ "grunt-contrib-cssmin": "~0.7.0",
16
+ "grunt-contrib-htmlmin": "~0.1.3",
17
+ "grunt-contrib-imagemin": "~0.3.0",
18
+ "grunt-contrib-jshint": "~0.7.1",
19
+ "grunt-contrib-uglify": "~0.2.0",
20
+ "grunt-contrib-watch": "~0.5.2",
21
+ "grunt-google-cdn": "~0.2.0",
22
+ "grunt-newer": "~0.6.1",
23
+ "grunt-ngmin": "~0.0.2",
24
+ "grunt-rev": "~0.1.0",
25
+ "grunt-svgmin": "~0.2.0",
26
+ "grunt-usemin": "~2.0.0",
27
+ "jshint-stylish": "~0.1.3",
28
+ "load-grunt-tasks": "~0.4.0",
29
+ "time-grunt": "~0.2.1",
30
+ "karma-ng-scenario": "^0.1.0",
31
+ "grunt-karma": "^0.8.3",
32
+ "karma": "^0.12.16",
33
+ "karma-ng-html2js-preprocessor": "^0.1.0"
34
+ },
35
+ "engines": {
36
+ "node": ">=0.10.0"
37
+ },
38
+ "scripts": {
39
+ "test": "grunt test"
40
+ }
41
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "node": true,
3
+ "browser": true,
4
+ "esnext": true,
5
+ "bitwise": true,
6
+ "camelcase": true,
7
+ "curly": true,
8
+ "eqeqeq": true,
9
+ "immed": true,
10
+ "indent": 2,
11
+ "latedef": true,
12
+ "newcap": true,
13
+ "noarg": true,
14
+ "quotmark": "single",
15
+ "regexp": true,
16
+ "undef": true,
17
+ "unused": true,
18
+ "strict": true,
19
+ "trailing": true,
20
+ "smarttabs": true,
21
+ "globals": {
22
+ "after": false,
23
+ "afterEach": false,
24
+ "angular": false,
25
+ "before": false,
26
+ "beforeEach": false,
27
+ "browser": false,
28
+ "describe": false,
29
+ "expect": false,
30
+ "inject": false,
31
+ "it": false,
32
+ "jasmine": false,
33
+ "spyOn": false
34
+ }
35
+ }
36
+
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>End2end Test Runner</title>
5
+ <script src="vendor/angular-scenario.js" ng-autotest></script>
6
+ <script src="scenarios.js"></script>
7
+ </head>
8
+ <body>
9
+ </body>
10
+ </html>
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ describe('Controller: MainCtrl', function () {
4
+
5
+ // load the controller's module
6
+ beforeEach(module('linkedin2cv GeneratorApp'));
7
+
8
+ var MainCtrl,
9
+ scope;
10
+
11
+ // Initialize the controller and a mock scope
12
+ beforeEach(inject(function ($controller, $rootScope) {
13
+ scope = $rootScope.$new();
14
+ MainCtrl = $controller('MainCtrl', {
15
+ $scope: scope
16
+ });
17
+ }));
18
+
19
+ it('should attach a list of awesomeThings to the scope', function () {
20
+ expect(scope.awesomeThings.length).toBe(3);
21
+ });
22
+ });
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ describe('Service: linkedin2cv Api', function () {
4
+
5
+ // load the service's module
6
+ beforeEach(module('linkedin2cv GeneratorApp'));
7
+
8
+ // instantiate service
9
+ var linkedin2cv Api;
10
+ beforeEach(inject(function (_linkedin2cv Api_) {
11
+ linkedin2cv Api = _linkedin2cv Api_;
12
+ }));
13
+
14
+ it('should do something', function () {
15
+ expect(!!linkedin2cv Api).toBe(true);
16
+ });
17
+
18
+ });
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ describe('Service: Linkedin2CVservice', function () {
4
+
5
+ // load the service's module
6
+ beforeEach(module('linkedin2cv GeneratorApp'));
7
+
8
+ // instantiate service
9
+ var Linkedin2CVservice;
10
+ beforeEach(inject(function (_Linkedin2CVservice_) {
11
+ Linkedin2CVservice = _Linkedin2CVservice_;
12
+ }));
13
+
14
+ it('should do something', function () {
15
+ expect(!!Linkedin2CVservice).toBe(true);
16
+ });
17
+
18
+ });