Datatables column group active - tests

HTML

<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.1.2/js/buttons.colVis.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css">
<table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </tfoot>
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td>Garrett Winters</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>63</td>
                <td>2011/07/25</td>
                <td>$170,750</td>
            </tr>
            <tr>
                <td>Ashton Cox</td>
                <td>Junior Technical Author</td>
                <td>San Francisco</td>
                <td>66</td>
                <td>2009/01/12</td>
                <td>$86,000</td>
            </tr>
            <tr>
                <td>Cedric Kelly</td>
                <td>Senior Javascript Developer</td>
  ...

JavaScript

$(document).ready(function() {
    var dTable = $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            {
                //extend: 'colvisGroup',
                text: 'Office info',
                //show: [ 1, 2 ],
                //hide: [ 3, 4, 5 ]
                action: function (e, dt, node, conf) {
                	dTable.button(0).active('true');
                  dTable.button(1).active('false');
                  dTable.button(2).active('false');
                  dTable.columns([1,2]).visible(true);
                  dTable.columns([3,4,5]).visible(false);
                }
            },
            {
                //extend: 'colvisGroup',
                text: 'HR info',
                //show: [ 3, 4, 5 ],
                //hide: [ 1, 2 ],
                action: function (e, dt, node, conf) {
                	dTable.button(0).active('false');
                  dTable.button(1).active('true');
                  dTable.button(2).active('false');
                  dTable.columns([3,4,5]).visible(true);
                  dTable.columns([1,2]).visible(false);
                }
            },
            {
                //extend: 'colvisGroup',
                text: 'Show all',
                //show: ':hidden'
                action: function (e, dt, node, conf) {
                	dTable.button(0).active('false');
                  dTable.button(1).active('false');
                  dTable.button(2).active('true');
                  dTable.columns(':hidden').visible(true);
                }
            }
        ]
    } );
    
    
    dTable.button(2).active('true');
} );