linkedin2cv 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ });