UNPKG

2.57 kBJavaScriptView Raw
1/**
2 * Module dependencies
3 */
4var util = require( './util' );
5var assert = require( 'assert' );
6
7/**
8 * Testing data
9 */
10var fixture = require( './fixture' );
11
12/**
13 * me.settings.profileLinks
14 */
15describe( 'wpcom.me.settings.profileLinks', function() {
16 // Global instances
17 var wpcom = util.wpcom();
18 var me = wpcom.me();
19 var settings = me.settings();
20 var profile = settings.profileLinks();
21 var testing_profile;
22 var added_profile;
23
24 // profile fixture
25 var fix_profiles = fixture['profile-links'];
26
27 // set random name ro first profile link
28 var fix_profile = fix_profiles[0];
29 var rnd = Math.random().toString().substr( 2 );
30 fix_profile.title += '-' + rnd;
31 fix_profile.value += '/#' + rnd;
32
33 // Create a testing_profile_link before
34 before( function( done ) {
35 profile.add( fix_profile, function( err, data_profile ) {
36 if ( err ) throw err;
37
38 testing_profile = data_profile;
39 done();
40 } );
41 } );
42
43 after( function( done ) {
44 // delete testing_profile
45 profile.del( testing_profile.added[0].link_slug, done );
46 } );
47
48 describe( 'wpcom.me.settings.profileLinks.get', function() {
49 it( 'should get at least one profile link for current user', function( done ) {
50 profile.get( function( err, data ) {
51 if ( err ) throw err;
52
53 assert.ok( data.profile_links instanceof Array );
54 assert.ok( 1 <= data.profile_links.length );
55 done();
56 } );
57 } );
58 } );
59
60 describe( 'wpcom.me.settings.profileLinks.add', function() {
61 it( 'should not add link already added', function( done ) {
62 profile.add( fix_profile, function( err, data ) {
63 if ( err ) throw err;
64
65 assert.ok( ! data.added );
66 assert.ok( data.duplicate instanceof Array );
67 assert.ok(
68 testing_profile.added[0].link_slug,
69 data.duplicate[0].link_slug
70 );
71 done();
72 } );
73 } );
74
75 it( 'should add a new profile link', function( done ) {
76 fix_profile.title += '-new';
77 fix_profile.value += '-new';
78
79 profile.add( fix_profile, function( err, data ) {
80 if ( err ) throw err;
81
82 assert.ok( ! data.duplicate );
83 assert.ok( data.added instanceof Array );
84 assert.ok( 1 === data.added.length );
85 assert.ok( fix_profile.title === data.added[0].title );
86
87 // store data in global var
88 added_profile = data;
89 done();
90 } );
91 } );
92 } );
93
94 describe( 'wpcom.me.settings.profileLinks.del', function() {
95 it( 'should delete the new link already added', function( done ) {
96 profile.del( added_profile.added[0].link_slug, function( err, data ) {
97 if ( err ) throw err;
98
99 assert.ok( data.success );
100 done();
101 } );
102 } );
103 } );
104} );