All files / lib/backend-operations/appsync-operations/helpers helper-graphqlApi.js

88.46% Statements 23/26
50% Branches 2/4
100% Functions 2/2
88.46% Lines 23/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                          25x 25x 25x 25x 25x 25x 25x 25x     3x 3x 3x 3x         2x 2x 2x   2x     2x   2x       2x 2x 2x   2x     25x        
/* 
 * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 *
 *     http://aws.amazon.com/apache2.0/
 *
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
*/
"use strict";
const deepEqual = require('deep-equal')
const dataSourceType = ["AWS_LAMBDA", "AMAZON_DYNAMODB", "AMAZON_ELASTICSEARCH"]
const awsmobilejsConstant = require('../../../utils/awsmobilejs-constant.js')
const DIFF = awsmobilejsConstant.DiffMark
const CREATE = awsmobilejsConstant.DiffMark_Create
const UPDATE = awsmobilejsConstant.DiffMark_Update
const NONE = awsmobilejsConstant.DiffMark_None
const DELETE = awsmobilejsConstant.DiffMark_Delete
 
function dressForDevBackend(graphqlApi){
    delete graphqlApi.apiId
    delete graphqlApi.arn
    delete graphqlApi.uris
    return graphqlApi
}
 
function diff(appsyncUpdateHandle){
    let result 
    let currentApi = appsyncUpdateHandle.currentAppSyncInfo.graphqlApi
    let devApi = appsyncUpdateHandle.devAppSyncInfo.graphqlApi
    let regex = new RegExp('^'+awsmobilejsConstant.ByAWSMobileCLI)
 
    Iif(regex.test(devApi.name)){
        devApi.name = currentApi.name
    }
    currentApi = dressForDevBackend(currentApi)
    
    Iif(deepEqual(devApi, currentApi)){
        devApi[DIFF] = NONE
        currentApi[DIFF] = NONE
    }else{
        devApi[DIFF] = UPDATE
        currentApi[DIFF] = UPDATE
        result = devApi
    }
    return result
}
 
module.exports = {
    dressForDevBackend, 
    diff
}